Используя следующий формат и конфигурацию журнала доступа:
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;
Я получаю это сообщение на порту 9000 при использовании netcat:
<190> 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? Я представляю, что это, вероятно, просто формат системного журнала, в спецификации которого я не знаю :)
Я закомментировал эту строку, и я ожидаю такого поведения :)
if (log[l].syslog_peer) {
// p = ngx_syslog_add_header(log[l].syslog_peer, line);
}
Еще один любезно предоставлен Алексием. Добавляем его сюда, чтобы люди его видели:
Это часть PRI протокола syslog tools.ietf.org/html/rfc3164#section-4.1.1