aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2021-01-06 19:18:40 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2021-01-06 19:18:40 +0000
commitbfe48b659baf0e5007e5fd6b7804881cb92e32fe (patch)
tree46ef176183d8b2bd12bf7d538b9a578ba16c2ce0
parentba285a1b84465d7de1bd55e27c9c74a665738416 (diff)
downloadrspamd-bfe48b659baf0e5007e5fd6b7804881cb92e32fe.tar.gz
rspamd-bfe48b659baf0e5007e5fd6b7804881cb92e32fe.zip
[Fix] Fix logging for rspamadm
-rw-r--r--src/libserver/logger.h2
-rw-r--r--src/libserver/logger/logger.c32
-rw-r--r--src/rspamadm/rspamadm.c9
-rw-r--r--src/rspamd.c2
-rw-r--r--test/rspamd_test_suite.c9
5 files changed, 29 insertions, 25 deletions
diff --git a/src/libserver/logger.h b/src/libserver/logger.h
index ca910c261..9bf7015c0 100644
--- a/src/libserver/logger.h
+++ b/src/libserver/logger.h
@@ -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)
diff --git a/src/libserver/logger/logger.c b/src/libserver/logger/logger.c
index fee4477a5..cf8ad496f 100644
--- a/src/libserver/logger/logger.c
+++ b/src/libserver/logger/logger.c
@@ -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) {
diff --git a/src/rspamadm/rspamadm.c b/src/rspamadm/rspamadm.c
index 5de5e677a..94fa4881d 100644
--- a/src/rspamadm/rspamadm.c
+++ b/src/rspamadm/rspamadm.c
@@ -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);
diff --git a/src/rspamd.c b/src/rspamd.c
index fce081b1c..cfaba54d6 100644
--- a/src/rspamd.c
+++ b/src/rspamd.c
@@ -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) {
diff --git a/test/rspamd_test_suite.c b/test/rspamd_test_suite.c
index 4525f8ebc..7d0136708 100644
--- a/test/rspamd_test_suite.c
+++ b/test/rspamd_test_suite.c
@@ -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);