Browse Source

[Fix] Fix logging for rspamadm

tags/2.7
Vsevolod Stakhov 3 years ago
parent
commit
bfe48b659b
5 changed files with 29 additions and 25 deletions
  1. 1
    1
      src/libserver/logger.h
  2. 18
    14
      src/libserver/logger/logger.c
  3. 4
    5
      src/rspamadm/rspamadm.c
  4. 1
    1
      src/rspamd.c
  5. 5
    4
      test/rspamd_test_suite.c

+ 1
- 1
src/libserver/logger.h View 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)

+ 18
- 14
src/libserver/logger/logger.c View 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) {

+ 4
- 5
src/rspamadm/rspamadm.c View 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);

+ 1
- 1
src/rspamd.c View 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) {

+ 5
- 4
test/rspamd_test_suite.c View 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);

Loading…
Cancel
Save