]> source.dussan.org Git - rspamd.git/commitdiff
Varargs versions of logging functions.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 20 Feb 2014 17:40:18 +0000 (17:40 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 20 Feb 2014 17:40:18 +0000 (17:40 +0000)
src/logger.c
src/logger.h

index c0f2e48884bd4ada1c878193c749e12b64c68d5a..285e8decb18ec7c5ddf38a5034443bc3d89461ef 100644 (file)
@@ -391,58 +391,68 @@ flush_log_buf (rspamd_logger_t *rspamd_log)
        }
 }
 
-/**
- * This log functions select real logger and write message if level is less or equal to configured log level
- */
+
 void
-rspamd_common_log_function (rspamd_logger_t *rspamd_log, GLogLevelFlags log_level,
-               const gchar *function, const gchar *fmt, ...)
+rspamd_common_logv (rspamd_logger_t *rspamd_log, GLogLevelFlags log_level, const gchar *function,
+               const gchar *fmt, va_list args)
 {
-       static gchar                    logbuf[BUFSIZ];
-       va_list                         vp;
-    u_char                         *end;
+       static gchar                   logbuf[BUFSIZ];
+       u_char                         *end;
 
-       if (log_level <= rspamd_log->cfg->log_level) {
+       if (rspamd_log == NULL) {
+               rspamd_log = default_logger;
+       }
+
+       if (rspamd_log == NULL) {
+               /* Just fprintf message to stderr */
+               if (log_level >= G_LOG_LEVEL_INFO) {
+                       end = rspamd_vsnprintf (logbuf, sizeof (logbuf), fmt, args);
+                       *end = '\0';
+                       rspamd_escape_log_string (logbuf);
+                       fprintf (stderr, "%s\n", logbuf);
+               }
+       }
+       else if (log_level <= rspamd_log->cfg->log_level) {
                g_mutex_lock (rspamd_log->mtx);
-               va_start (vp, fmt);
-               end = rspamd_vsnprintf (logbuf, sizeof (logbuf), fmt, vp);
+               end = rspamd_vsnprintf (logbuf, sizeof (logbuf), fmt, args);
                *end = '\0';
                rspamd_escape_log_string (logbuf);
-               va_end (vp);
                rspamd_log->log_func (NULL, function, log_level, logbuf, FALSE, rspamd_log);
                g_mutex_unlock (rspamd_log->mtx);
        }
 }
 
+/**
+ * This log functions select real logger and write message if level is less or equal to configured log level
+ */
+void
+rspamd_common_log_function (rspamd_logger_t *rspamd_log, GLogLevelFlags log_level,
+               const gchar *function, const gchar *fmt, ...)
+{
+       va_list                         vp;
+
+       va_start (vp, fmt);
+       rspamd_common_logv (rspamd_log, log_level, function, fmt, vp);
+       va_end (vp);
+}
+
+void
+rspamd_default_logv (GLogLevelFlags log_level, const gchar *function,
+               const gchar *fmt, va_list args)
+{
+       rspamd_common_logv (NULL, log_level, function, fmt, args);
+}
+
 void
 rspamd_default_log_function (GLogLevelFlags log_level,
                const gchar *function, const gchar *fmt, ...)
 {
-       static gchar                   logbuf[BUFSIZ];
+
        va_list                         vp;
-       u_char                         *end;
 
-       if (default_logger == NULL) {
-               /* Just fprintf message */
-               if (log_level >= G_LOG_LEVEL_INFO) {
-                       va_start (vp, fmt);
-                       end = rspamd_vsnprintf (logbuf, sizeof (logbuf), fmt, vp);
-                       *end = '\0';
-                       rspamd_escape_log_string (logbuf);
-                       va_end (vp);
-                       fprintf (stderr, "%s\n", logbuf);
-               }
-       }
-       else if (log_level <= default_logger->cfg->log_level) {
-               g_mutex_lock (default_logger->mtx);
-               va_start (vp, fmt);
-               end = rspamd_vsnprintf (logbuf, sizeof (logbuf), fmt, vp);
-               *end = '\0';
-               rspamd_escape_log_string (logbuf);
-               va_end (vp);
-               default_logger->log_func (NULL, function, log_level, logbuf, FALSE, default_logger);
-               g_mutex_unlock (default_logger->mtx);
-       }
+       va_start (vp, fmt);
+       rspamd_default_logv (log_level, function, fmt, vp);
+       va_end (vp);
 }
 
 
index 94d9f5f6aca500a621e6b4da1a78acd20e8d943c..6f46080def0c0fb3754a2deeb92bb60c59d2cd27 100644 (file)
@@ -63,6 +63,9 @@ void rspamd_glib_log_function (const gchar *log_domain,
 void rspamd_common_log_function (rspamd_logger_t *logger,
                GLogLevelFlags log_level, const gchar *function, const gchar *fmt, ...);
 
+void rspamd_common_logv (rspamd_logger_t *logger,
+               GLogLevelFlags log_level, const gchar *function, const gchar *fmt, va_list args);
+
 /**
  * Conditional debug function
  */
@@ -75,6 +78,15 @@ void rspamd_conditional_debug (rspamd_logger_t *logger,
 void rspamd_default_log_function (GLogLevelFlags log_level, const gchar *function,
                const gchar *fmt, ...);
 
+/**
+ * Varargs version of default log function
+ * @param log_level
+ * @param function
+ * @param fmt
+ * @param args
+ */
+void rspamd_default_logv (GLogLevelFlags log_level, const gchar *function, const gchar *fmt, va_list args);
+
 /**
  * Temporary turn on debug
  */