nginx 使用 syslog 时将数据添加到访问日志中

nginx 使用 syslog 时将数据添加到访问日志中

使用以下格式和访问日志配置:

log_format syslog '{"hi2u":true,"request_time":"$request_time","@timestamp":"$time_iso8601", "request_id":"$http_x_request_id", "token":"$token"}';

access_log syslog:server=localhost:9000 syslog;

使用 netcat 时,我在端口 9000 上收到此消息:

<190>8月29日 06:17:03 用户全系列 nginx: {"hi2u":true,"request_time":"0.000","@timestamp":"2017-08-29T06:17:03-07:00", "request_id":"-", "token":"abcdef123456789"}

如果我查看 nginx 源代码,我会看到类似于此处添加的标题:

https://github.com/nginx/nginx/blob/master/src/http/modules/ngx_http_log_module.c#L360

有人知道禁用那里的标题以便只显示 log_format 的方法吗?我想它可能只是我不知道的规范中的 syslog 格式 :)

我注释掉了那一行,这是我期望的行为:)

if (log[l].syslog_peer) {
    // p = ngx_syslog_add_header(log[l].syslog_peer, line);
}

答案1

另一张由 Alexy 提供的。将其添加到此处以便大家查看:

这是 syslog 协议 tools.ietf.org/html/rfc3164#section-4.1.1 的 PRI 部分

相关内容