summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2014-02-20 17:40:18 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2014-02-20 17:40:18 +0000
commitaa075e8ad006484fe7fe9d99b777f814cf3939e7 (patch)
treeb2a642ba63ec8080d7100f83177de304be4443f7 /src
parent199d0aa5da23edb38195ccad1e97c2b310c4c4e4 (diff)
downloadrspamd-aa075e8ad006484fe7fe9d99b777f814cf3939e7.tar.gz
rspamd-aa075e8ad006484fe7fe9d99b777f814cf3939e7.zip
Varargs versions of logging functions.
Diffstat (limited to 'src')
-rw-r--r--src/logger.c80
-rw-r--r--src/logger.h12
2 files changed, 57 insertions, 35 deletions
diff --git a/src/logger.c b/src/logger.c
index c0f2e4888..285e8decb 100644
--- a/src/logger.c
+++ b/src/logger.c
@@ -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);
}
diff --git a/src/logger.h b/src/logger.h
index 94d9f5f6a..6f46080de 100644
--- a/src/logger.h
+++ b/src/logger.h
@@ -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
*/
@@ -76,6 +79,15 @@ void rspamd_default_log_function (GLogLevelFlags log_level, const gchar *functio
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
*/
void rspamd_log_debug (rspamd_logger_t *logger);