Я бы хотел, чтобы метки времени в журналах ошибок Nginx были такими же, как и в журналах доступа.
Время ошибки имеет формат Y/m/d H:i:s
тогда как журналы доступа позволяют мне:
d/M/Y:H:i:s O
($ time_local) или Y-m-d\TH:i:sO
($ time_iso8601)Есть ли способ настроить журналы доступа на использование формата журнала ошибок или наоборот?
Я использую Nginx 1.10.1 на CentOS 7.
Обновить:
Поскольку мой вопрос был отклонен, я постараюсь быть предельно ясным -
В access_log
Директива позволяет мне определять метку времени, используемую в журналах доступа, хотя, похоже, у меня есть только два варианта формата. например:
log_format foo '[$time_local] "$request" $status ..';
log_format bar '[$time_iso8601] "$request" $status ..';
Затем я могу применить эти форматы для доступа к журналам следующим образом:
access_log foo.log foo;
access_log bar.log bar;
Просмотр всех журналов показывает разные форматы времени, например
==> foo.log <==
[29/Sep/2016:10:20:48 +0100] "GET /fail HTTP/1.1" 404 ..
==> bar.log <==
[2016-09-29T10:20:48+01:00] "GET /fail HTTP/1.1" 404 ..
==> error_log <==
2016/09/29 10:37:52 [error] ..... No such file or directory
Ни то, ни другое $time_local
ни $time_iso8601
соответствуют формату, используемому в стандартном журнале ошибок Nginx. Я пытался решить эту проблему двумя способами:
$time_locale
или $time_iso8601
.Я не привязан к какому-либо конкретному формату времени, но я хотел бы, чтобы они совпадали в моих журналах ошибок, поскольку это экономит мне время при перекрестных ссылках на доступ и записи журнала ошибок.
Если кто-нибудь знает, как достичь 1 или 2 выше, я хотел бы знать. Спасибо.
К сожалению, кажется, что изменить error_log
формат, по крайней мере, согласно этот и этот.
Также не представляется возможным изменить формат поля времени в журналах доступа, поэтому я думаю, что вам не повезло с чисто NGINX-решением.
Тем не менее, должна быть возможность отправить их оба в системный журнал и надеяться, что он использует тот же формат или, по крайней мере, предоставит вам лучшие варианты.