Logger log_* functions should be macro - to avoid calculations of parameters:
log_debug(std::string("test").append(to_string(bigObject)));
// will expand to the following pseudo-code
if ( logLevel >= Debug)
{
log(LogKind::Debug, std::string("test").append(to_string(bigObject)));
}
expected result: