我正在寻找一种方法来存储日志的通用格式,以便他们可以很容易地被大多数工具识别和分析。
我对goaccess工具自动识别的格式感兴趣,它可以支持响应时间。
到目前为止,似乎默认的日志设置不被识别。

Nginx默认会输出一个组合的日志格式(NCSA)。
如果您从configuration对话框中select第一个选项,GoAccess会自动识别它(或者从您的configuration文件中永久取消注释NCSA组合日志格式)。
如果您有兴趣logging请求时间,那么您需要修改您的nginxconfiguration文件并添加您的自定义日志格式:
vi /etc/nginx/nginx.conf
然后加:
log_format timed_combined '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" ' '$request_time';
并更改访问日志以使用新的格式:
access_log /var/log/nginx/timed.log timed_combined;
并重新启动nginx
确保你的access.log现在正在logging请求时间。 然后,您可以将%T添加到您的goaccess log-format如下所示:
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" %T
GoAccess在他们的页面上说:
Apache / Nginx Common / Combined + VHosts
如果您的日志不parsing,那么您需要查看GoAccess日志并查看错误。
另外:
GoAccess允许任何自定义的日志格式string。
因此,您可能需要研究如何指导您的自定义格式的工具。