String::Flogger::flog() args are mostly just like sprintf arguments, but non-strings (like references, objects, and undef) are converted to JSON, and we can defer evaluation of bits of the message so that it won't be evaluated unless needed. WWW: https://metacpan.org/release/String-Flogger