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:
parent
97ba9e4d47
commit
0dea8d97f4
2 changed files with 12 additions and 7 deletions
14
logging.c
14
logging.c
|
@ -34,6 +34,9 @@
|
|||
#include "mkdirpp.h"
|
||||
#include "util.h"
|
||||
|
||||
/* This is used by DEBUG_LOG macro */
|
||||
int log_debug_enabled = 0;
|
||||
|
||||
/* ================================================== */
|
||||
/* Flag indicating we have initialised */
|
||||
static int initialised = 0;
|
||||
|
@ -148,10 +151,6 @@ void LOG_Message(LOG_Severity severity, LOG_Facility facility,
|
|||
time_t t;
|
||||
struct tm stm;
|
||||
|
||||
/* Don't write debug messages if debug level is too low */
|
||||
if (debug_level < DEBUG_LEVEL_PRINT_DEBUG && severity == LOGS_DEBUG)
|
||||
return;
|
||||
|
||||
#ifdef WINNT
|
||||
#else
|
||||
if (!system_log) {
|
||||
|
@ -216,8 +215,11 @@ LOG_OpenSystemLog(void)
|
|||
void LOG_SetDebugLevel(int level)
|
||||
{
|
||||
debug_level = level;
|
||||
if (!DEBUG && level >= DEBUG_LEVEL_PRINT_DEBUG)
|
||||
LOG(LOGS_WARN, LOGF_Logging, "Not compiled with full debugging support");
|
||||
if (level >= DEBUG_LEVEL_PRINT_DEBUG) {
|
||||
if (!DEBUG)
|
||||
LOG(LOGS_WARN, LOGF_Logging, "Not compiled with full debugging support");
|
||||
log_debug_enabled = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
|
|
@ -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__)
|
||||
|
|
Loading…
Reference in a new issue