Browse Source

[Fix] Fix logging for rspamadm

pull/3597/head
Vsevolod Stakhov 5 years ago
parent
commit
bfe48b659b
  1. 2
      src/libserver/logger.h
  2. 32
      src/libserver/logger/logger.c
  3. 9
      src/rspamadm/rspamadm.c
  4. 2
      src/rspamd.c
  5. 9
      test/rspamd_test_suite.c

2
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)

32
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) {

9
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);

2
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) {

9
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);

Loading…
Cancel
Save