在自定义 Apache 日志中未获取状态代码

在自定义 Apache 日志中未获取状态代码

我正在尝试对充当代理服务器的 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 被移到最后。

谢谢

相关内容