diff --git a/daemon/src/logger.c b/daemon/src/logger.c index 95eb81528ae6a3aea255361d907888b072e7e45c..4817f0441f84bbafd5a0cedca0005830e15abf41 100644 --- a/daemon/src/logger.c +++ b/daemon/src/logger.c @@ -44,6 +44,15 @@ void logger(const int level, const char* format, ...) return; va_list ap; + va_start(ap, format); + vlogger(level, format, ap); + va_end(ap); +} + +void vlogger(const int level, const char *format, va_list ap) +{ + if (!debugMode && level == LOG_DEBUG) + return; if (consoleLog) { const char *color_prefix = ""; @@ -58,16 +67,10 @@ void logger(const int level, const char* format, ...) } fputs(color_prefix, stderr); - - va_start(ap, format); vfprintf(stderr, format, ap); - va_end(ap); - fputs(END_COLOR"\n", stderr); } else { - va_start(ap, format); vsyslog(level, format, ap); - va_end(ap); } } diff --git a/daemon/src/logger.h b/daemon/src/logger.h index 982fd345b42bff8844040fa7f1274e9a400fdc81..4a78abe18fea2a7c377b92381fe08069059bc4a0 100644 --- a/daemon/src/logger.h +++ b/daemon/src/logger.h @@ -35,10 +35,13 @@ extern "C" { #endif +#include <stdarg.h> + /** * Print something, coloring it depending on the level */ void logger(const int level, const char *format, ...); +void vlogger(const int level, const char *format, va_list); /** * Allow writing on the console