如何更改错误日志中的时间戳格式?

Tim*_*Tim 15 nginx

我希望 Nginx 错误日志中的时间戳与访问日志中的时间戳相同。

错误时间具有以下格式,Y/m/d H:i:s而访问日志允许我:

  • d/M/Y:H:i:s O ($time_local) 或
  • Y-m-d\TH:i:sO ($time_iso8601)

有什么方法可以将我的访问日志设置为使用错误日志格式,反之亦然?

我在 CentOS 7 上运行 Nginx 1.10.1。


更新:

由于我的问题已被否决,我将尽量清楚地说明 -

access_log指令允许我定义访问日志中使用的时间戳,尽管我似乎只有两种格式选择。例如:

log_format foo '[$time_local] "$request" $status ..';
log_format bar '[$time_iso8601] "$request" $status ..';
Run Code Online (Sandbox Code Playgroud)

然后我可以应用这些格式来访问这样的日志:

access_log foo.log foo;
access_log bar.log bar;
Run Code Online (Sandbox Code Playgroud)

拖尾所有日志显示不同的时间格式,例如

==> 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
Run Code Online (Sandbox Code Playgroud)

既不匹配$time_local也不$time_iso8601匹配标准 Nginx 错误日志中使用的格式。我试图通过两种方式解决这个问题:

  1. 配置错误日志以使用$time_locale$time_iso8601
    ~我没有找到任何可以做到这一点的指令。
  2. 配置访问日志时间格式以匹配错误日志时间格式。
    ~我没有找到任何可以做到这一点的变量。

我不喜欢任何特定的时间格式,但我希望它们在我的错误日志中匹配,因为它可以在交叉引用访问和错误日​​志条目时节省我的时间。

如果有人知道如何实现上述 1. 或 2.,我很想知道。谢谢。

Gre*_*egL 5

可悲的是,似乎无法更改error_log格式,至少根据thisthis

似乎也无法更改访问日志中时间字段的格式,因此我认为您对纯粹的 NGINX 解决方案不走运。

也就是说,应该可以将它们都发送到 syslog 并希望它使用相同的格式,或者至少为您提供更好的选择。