apache web服务器日志记录 - 自定义日志文件与一般日志文件

时间:2013-01-22 17:50:41

标签: linux apache logging

当我没有在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,像Gecko)Chrome / 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 logs / DOMAIN-access_log common

为什么自定义日志包含的信息少于默认情况下所有虚拟主机都登录的常规日志?

2 个答案:

答案 0 :(得分:0)

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

LogFormat“%h%l%u%t \”%r \“%> s%b”%{User-agent} i“常见

答案 1 :(得分:0)

你没有说你正在使用什么样的Linux。任何配置合理的Apache(例如基于Debian的Apache,如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

您还应该查看Custom Log Formats的文档。