From 29c00f41629aa0bcc22460bfdf77a90099a66bfe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Wed, 12 Nov 2014 18:25:18 -0500
Subject: [PATCH] logger: add vlogger with va_list

Change-Id: I4203235cd16eec796ecd020ecfe06e9b8107fc10
---
 daemon/src/logger.c | 15 +++++++++------
 daemon/src/logger.h |  3 +++
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/daemon/src/logger.c b/daemon/src/logger.c
index 95eb81528a..4817f0441f 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 982fd345b4..4a78abe18f 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
-- 
GitLab