我正在尝试对充当代理服务器的 Apache 服务器使用自定义日志。
我使用以下配置:
LogFormat "%v %h %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"" combinedvhost
ErrorLog logs/sales_com_error_log
CustomLog logs/sales_com_access_log combinedvhost
但写入日志文件的日志如下:
sales.com 117.98.194.77 - - [17/Nov/2017:02:33:29 -0500] "POST /rest/analytics/1.0/publish/bulk HTTP/1.1" 263961 "https://sales.com/secure/Dashboard.jspa" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0"
通过输出可以清楚地看到%> 秒和%D没有被添加到日志文件。
请提供任何帮助。
答案1
显而易见的是:你重新启动了吗?
第二,我思考即LogFormat
指令不会改变现有的昵称。因此,如果“组合虚拟主机”昵称已在其他地方定义,使用第二个LogFormat <other-options> combinedvhost
条目更改记录的字段可能不起作用。
您可以尝试为自定义 LogFormat 指定一个自定义昵称吗:
LogFormat "%v %h %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"" mycombinedvhost
CustomLog logs/sales_com_access_log mycombinedvhost
然后重新启动?
答案2
通过以下开关排列可以解决该问题。
LogFormat "%v %h %l %u %t \"%r\" %>s \"%{Referer}i\" \"%{User-Agent}i\" %b %D" combinedvhost
这里 %b 和 %D 被移到最后。
谢谢