PlatformLab / NanoLog

Nanolog is an extremely performant nanosecond scale logging system for C++ that exposes a simple printf-like API.
Other
3k stars 343 forks source link

Hack: Expression won't be evaluated. #73

Open Fantasime opened 8 months ago

Fantasime commented 8 months ago

In this case:

NanoLog::setLogLevel(NOTICE);
int val = 0;
NANO_LOG(DEBUG, "This value %d won't be printed.", val++);

the value of val is still 0 because of code at line 1087~1089 in runtime/NanoLogCpp17.h:

if (NanoLog::severity > NanoLog::getLogLevel())
    break;

I moved it to function NanoLogInternal::log to make VA_ARGS be evaluated. See an additional test case in integrationTest/main.cc.