0

当我没有在我的 conf 文件的虚拟主机部分中指定日志文件时,日志将写入 httpd.conf (=access_log) 中指定的文件中。日志条目如下所示:

SOMEIP - - [22/Jan/2013:18:34:08 +0100] "GET / HTTP/1.1" 200 1752 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko)铬/SOMEIP Safari/537.17"

SOMEIP - - [22/Jan/2013:18:34:08 +0100] "GET /img/homepage_bg.png HTTP/1.1" 304 - "http://DOMAIN/" "Mozilla/5.0 (Windows NT 6.1; WOW64 ) AppleWebKit/537.17 (KHTML, 像 Gecko) C$

但是当我在虚拟主机部分定义一个日志文件时,新的日志文件包含不同的信息:

SOMEIP - - [22/Jan/2013:18:33:34 +0100] "GET / HTTP/1.1" 200 1752

SOMEIP - - [22/Jan/2013:18:33:34 +0100] “GET /img/homepage_bg.png HTTP/1.1”304 -

我这样定义日志文件:

CustomLog 日志/DOMAIN-access_log common

为什么自定义日志比所有虚拟主机默认登录的通用日志包含的信息少?

4

2 回答 2

0

您需要使用包含用户代理的日志格式定义别名“common”。

LogFormat "%h %l %u %t \"%r\" %>s %b "%{User-agent}i" common

于 2013-01-22T18:01:33.553 回答
0

你没有说你使用的是什么风格的 Linux。任何配置得当的 Apache(例如基于 Debian 的 Ubuntu、Mint 等)都将LogFormat在其配置中包含用户代理。查找所有匹配的行LogFormat。你应该找到这样的东西:

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

只需使用日志文件combined的参数甚至参数:vhost_combined

CustomLog logs/DOMAIN-access_log combined

您还应该查看自定义日志格式的文档。

于 2013-01-22T20:23:28.143 回答