logging: move check of enabled debugging to DEBUG_LOG macro

This avoids unnecessary calls to the logging function when debugging
messages are not logged. The cost is a slight increase in the size of
the binary (when compiled with debug messages).
This commit is contained in:
Miroslav Lichvar
2014-06-04 11:57:56 +02:00
parent 97ba9e4d47
commit 0dea8d97f4
2 changed files with 12 additions and 7 deletions

View File

@@ -28,6 +28,9 @@
#ifndef GOT_LOGGING_H
#define GOT_LOGGING_H
/* Flag indicating whether debug messages are logged */
extern int log_debug_enabled;
/* Line logging macros. If the compiler is GNU C, we take advantage of
being able to get the function name also. */
@@ -41,7 +44,7 @@
#define DEBUG_LOG(facility, ...) \
do { \
if (DEBUG) \
if (DEBUG && log_debug_enabled) \
LOG_Message(LOGS_DEBUG, facility, __LINE__, __FILE__, FUNCTION_NAME, __VA_ARGS__); \
} while (0)
#define LOG(severity, facility, ...) LOG_Message(severity, facility, __LINE__, __FILE__, FUNCTION_NAME, __VA_ARGS__)