浏览代码

[Feature] Add filename to log format

tags/1.7.1
Vsevolod Stakhov 6 年前
父节点
当前提交
2739b417ab
共有 4 个文件被更改,包括 29 次插入9 次删除
  1. 1
    1
      conf/logging.inc
  2. 1
    0
      src/libserver/cfg_file.h
  3. 3
    0
      src/libserver/cfg_utils.c
  4. 24
    8
      src/libserver/task.c

+ 1
- 1
conf/logging.inc 查看文件

@@ -5,7 +5,7 @@ log_format =<<EOD
id: <$mid>,$if_qid{ qid: <$>,}$if_ip{ ip: $,}$if_user{ user: $,}$if_smtp_from{ from: <$>,}
(default: $is_spam ($action): [$scores] [$symbols_scores_params]),
len: $len, time: $time_real real, $time_virtual virtual, dns req: $dns_req,
digest: <$digest>$if_smtp_rcpts{, rcpts: <$>}$if_mime_rcpt{, mime_rcpt: <$>}
digest: <$digest>$if_smtp_rcpts{, rcpts: <$>}$if_mime_rcpt{, mime_rcpt: <$>}$if_filename{, file: $}
EOD



+ 1
- 0
src/libserver/cfg_file.h 查看文件

@@ -234,6 +234,7 @@ enum rspamd_log_format_type {
RSPAMD_LOG_TIME_VIRTUAL,
RSPAMD_LOG_LUA,
RSPAMD_LOG_DIGEST,
RSPAMD_LOG_FILENAME,
};

enum rspamd_log_format_flags {

+ 3
- 0
src/libserver/cfg_utils.c 查看文件

@@ -425,6 +425,9 @@ rspamd_config_process_var (struct rspamd_config *cfg, const rspamd_ftok_t *var,
rspamd_ftok_cstr_equal (&tok, "checksum", TRUE)) {
type = RSPAMD_LOG_DIGEST;
}
else if (rspamd_ftok_cstr_equal (&tok, "filename", TRUE)) {
type = RSPAMD_LOG_FILENAME;
}
else {
msg_err_config ("unknown log variable: %T", &tok);
return FALSE;

+ 24
- 8
src/libserver/task.c 查看文件

@@ -986,6 +986,11 @@ rspamd_task_log_check_condition (struct rspamd_task *task,
ret = TRUE;
}
break;
case RSPAMD_LOG_FILENAME:
if (task->msg.fpath) {
ret = TRUE;
}
break;
default:
ret = TRUE;
break;
@@ -1268,6 +1273,7 @@ rspamd_task_log_variable (struct rspamd_task *task,
rspamd_fstring_t *res = logbuf;
rspamd_ftok_t var = {.begin = NULL, .len = 0};
static gchar numbuf[64];
static const gchar undef[] = "undef";

switch (lf->type) {
/* String vars */
@@ -1277,8 +1283,8 @@ rspamd_task_log_variable (struct rspamd_task *task,
var.len = strlen (var.begin);
}
else {
var.begin = "undef";
var.len = 5;
var.begin = undef;
var.len = sizeof (undef) - 1;
}
break;
case RSPAMD_LOG_QID:
@@ -1287,8 +1293,8 @@ rspamd_task_log_variable (struct rspamd_task *task,
var.len = strlen (var.begin);
}
else {
var.begin = "undef";
var.len = 5;
var.begin = undef;
var.len = sizeof (undef) - 1;
}
break;
case RSPAMD_LOG_USER:
@@ -1297,8 +1303,8 @@ rspamd_task_log_variable (struct rspamd_task *task,
var.len = strlen (var.begin);
}
else {
var.begin = "undef";
var.len = 5;
var.begin = undef;
var.len = sizeof (undef) - 1;
}
break;
case RSPAMD_LOG_IP:
@@ -1307,8 +1313,8 @@ rspamd_task_log_variable (struct rspamd_task *task,
var.len = strlen (var.begin);
}
else {
var.begin = "undef";
var.len = 5;
var.begin = undef;
var.len = sizeof (undef) - 1;
}
break;
/* Numeric vars */
@@ -1376,6 +1382,16 @@ rspamd_task_log_variable (struct rspamd_task *task,
(gint)sizeof (task->digest), task->digest);
var.begin = numbuf;
break;
case RSPAMD_LOG_FILENAME:
if (task->msg.fpath) {
var.len = strlen (task->msg.fpath);
var.begin = task->msg.fpath;
}
else {
var.begin = undef;
var.len = sizeof (undef) - 1;
}
break;
default:
var = rspamd_task_log_metric_res (task, lf);
break;

正在加载...
取消
保存