]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Fix logging for rspamadm
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 6 Jan 2021 19:18:40 +0000 (19:18 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 6 Jan 2021 19:18:40 +0000 (19:18 +0000)
src/libserver/logger.h
src/libserver/logger/logger.c
src/rspamadm/rspamadm.c
src/rspamd.c
test/rspamd_test_suite.c

index ca910c261a2aa197e3343d1ff59449c68565ec14..9bf7015c07fbca1fb78e3ad2a6962dc1333cc5a6 100644 (file)
@@ -68,7 +68,7 @@ struct rspamd_logger_funcs {
  * This logger is also used as an emergency logger
  * @return new rspamd logger object
  */
-rspamd_logger_t * rspamd_log_open_emergency (rspamd_mempool_t *pool);
+rspamd_logger_t * rspamd_log_open_emergency (rspamd_mempool_t *pool, gint flags);
 
 /**
  * Open specific (configured logging)
index fee4477a58a9fdc3192107d42472fe0410f50884..cf8ad496f8d36acc104ce0115a439c6432b497a7 100644 (file)
@@ -131,7 +131,7 @@ rspamd_emergency_logger_dtor (gpointer d)
 }
 
 rspamd_logger_t *
-rspamd_log_open_emergency (rspamd_mempool_t *pool)
+rspamd_log_open_emergency (rspamd_mempool_t *pool, gint flags)
 {
        rspamd_logger_t *logger;
        GError *err = NULL;
@@ -147,7 +147,7 @@ rspamd_log_open_emergency (rspamd_mempool_t *pool)
                logger = g_malloc0 (sizeof (rspamd_logger_t));
        }
 
-
+       logger->flags = flags;
        logger->pool = pool;
        logger->process_type = "main";
 
@@ -432,13 +432,15 @@ rspamd_common_logv (rspamd_logger_t *rspamd_log, gint level_flags,
                if (level >= G_LOG_LEVEL_INFO) {
                        end = rspamd_vsnprintf (logbuf, sizeof (logbuf), fmt, args);
 
-                       if ((nescaped = rspamd_log_line_need_escape (logbuf, end - logbuf)) != 0) {
-                               gsize unsecaped_len = end - logbuf;
-                               gchar *logbuf_escaped = g_alloca (unsecaped_len + nescaped * 4);
-                               log_line = logbuf_escaped;
+                       if (!(rspamd_log->flags & RSPAMD_LOG_FLAG_RSPAMADM)) {
+                               if ((nescaped = rspamd_log_line_need_escape (logbuf, end - logbuf)) != 0) {
+                                       gsize unsecaped_len = end - logbuf;
+                                       gchar *logbuf_escaped = g_alloca (unsecaped_len + nescaped * 4);
+                                       log_line = logbuf_escaped;
 
-                               end = rspamd_log_line_hex_escape (logbuf, unsecaped_len,
-                                               logbuf_escaped,unsecaped_len + nescaped * 4);
+                                       end = rspamd_log_line_hex_escape (logbuf, unsecaped_len,
+                                                       logbuf_escaped, unsecaped_len + nescaped * 4);
+                               }
                        }
 
                        rspamd_fprintf (stderr, "%*s\n", (gint)(end - log_line),
@@ -456,13 +458,15 @@ rspamd_common_logv (rspamd_logger_t *rspamd_log, gint level_flags,
                if (rspamd_logger_need_log (rspamd_log, level_flags, mod_id)) {
                        end = rspamd_vsnprintf (logbuf, sizeof (logbuf), fmt, args);
 
-                       if ((nescaped = rspamd_log_line_need_escape (logbuf, end - logbuf)) != 0) {
-                               gsize unsecaped_len = end - logbuf;
-                               gchar *logbuf_escaped = g_alloca (unsecaped_len + nescaped * 4);
-                               log_line = logbuf_escaped;
+                       if (!(rspamd_log->flags & RSPAMD_LOG_FLAG_RSPAMADM)) {
+                               if ((nescaped = rspamd_log_line_need_escape (logbuf, end - logbuf)) != 0) {
+                                       gsize unsecaped_len = end - logbuf;
+                                       gchar *logbuf_escaped = g_alloca (unsecaped_len + nescaped * 4);
+                                       log_line = logbuf_escaped;
 
-                               end = rspamd_log_line_hex_escape (logbuf, unsecaped_len,
-                                               logbuf_escaped,unsecaped_len + nescaped * 4);
+                                       end = rspamd_log_line_hex_escape (logbuf, unsecaped_len,
+                                                       logbuf_escaped, unsecaped_len + nescaped * 4);
+                               }
                        }
 
                        if ((level_flags & RSPAMD_LOG_ENCRYPTED) && rspamd_log->pk) {
index 5de5e677a07ff89d71c2a35335d45e41a691f6b3..94fa4881d7bfd4dcce60546d9eaf2d450abe03d4 100644 (file)
@@ -438,18 +438,17 @@ main (gint argc, gchar **argv, gchar **env)
                exit (1);
        }
 
-       /* Setup logger */
-       rspamd_main->logger = rspamd_log_open_emergency (rspamd_main->server_pool);
 
        /* Setup logger */
        if (verbose) {
-               rspamd_log_set_log_level (rspamd_main->logger, G_LOG_LEVEL_DEBUG);
-               rspamd_log_set_log_flags (rspamd_main->logger,
+               rspamd_main->logger = rspamd_log_open_emergency (rspamd_main->server_pool,
                                RSPAMD_LOG_FLAG_USEC|RSPAMD_LOG_FLAG_ENFORCED|RSPAMD_LOG_FLAG_RSPAMADM);
+               rspamd_log_set_log_level (rspamd_main->logger, G_LOG_LEVEL_DEBUG);
        }
        else {
+               rspamd_main->logger = rspamd_log_open_emergency (rspamd_main->server_pool,
+                               RSPAMD_LOG_FLAG_RSPAMADM);
                rspamd_log_set_log_level (rspamd_main->logger, G_LOG_LEVEL_MESSAGE);
-               rspamd_log_set_log_flags (rspamd_main->logger,RSPAMD_LOG_FLAG_RSPAMADM);
        }
 
        rspamd_main->event_loop = ev_default_loop (EVFLAG_SIGNALFD|EVBACKEND_ALL);
index fce081b1c02a51aacf3d6be9a33b00ec392d0786..cfaba54d6ad4cd45162420e9932b6b5b4b0af557 100644 (file)
@@ -1395,7 +1395,7 @@ main (gint argc, gchar **argv, gchar **env)
        type = g_quark_from_static_string ("main");
 
        /* First set logger to console logger */
-       rspamd_main->logger = rspamd_log_open_emergency (rspamd_main->server_pool);
+       rspamd_main->logger = rspamd_log_open_emergency (rspamd_main->server_pool, 0);
        g_assert (rspamd_main->logger != NULL);
 
        if (is_debug) {
index 4525f8ebc6a2cad3a19f1540369bda36316d7e3a..7d0136708da93375d9cac3891055891b8c334e7d 100644 (file)
@@ -52,17 +52,18 @@ main (int argc, char **argv)
        }
 
        /* Setup logger */
-       rspamd_main->logger = rspamd_log_open_emergency (rspamd_main->server_pool);
 
        /* Setup logger */
        if (verbose || g_test_verbose ()) {
-               rspamd_log_set_log_level (rspamd_main->logger, G_LOG_LEVEL_DEBUG);
-               rspamd_log_set_log_flags (rspamd_main->logger,
+               rspamd_main->logger = rspamd_log_open_emergency (rspamd_main->server_pool,
                                RSPAMD_LOG_FLAG_USEC|RSPAMD_LOG_FLAG_ENFORCED|RSPAMD_LOG_FLAG_RSPAMADM);
+
+               rspamd_log_set_log_level (rspamd_main->logger, G_LOG_LEVEL_DEBUG);
        }
        else {
+               rspamd_main->logger = rspamd_log_open_emergency (rspamd_main->server_pool,
+                               RSPAMD_LOG_FLAG_RSPAMADM);
                rspamd_log_set_log_level (rspamd_main->logger, G_LOG_LEVEL_MESSAGE);
-               rspamd_log_set_log_flags (rspamd_main->logger,RSPAMD_LOG_FLAG_RSPAMADM);
        }
 
        rspamd_lua_set_path ((lua_State *)cfg->lua_state, NULL, NULL);