如何自定义Apache虚拟主机的LogFormat?

时间:2015-04-25 00:56:03

标签: apache logging logfiles access-log

我真的需要一些帮助。我的服务器有多个虚拟主机,每个虚拟主机都有自己的访问日志,我需要能够为服务器上存在的每个虚拟主机自定义LogFormat。我在httpd.conf中修改了LogFormat,但它实际上只影响主访问日志,而不影响虚拟主机。

这是我的LogFormat:

<IfModule log_config_module>
LogFormat "%v:%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{CF-Connecting-IP}i" combinedvhost
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{CF-Connecting-IP}i" combined
LogFormat "%h %l %u %t \"%r\" %>s %b %{CF-Connecting-IP}i" common

CustomLog "logs/access_log" combined
CustomLog logs/access_log combinedvhost

<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{CF-Connecting-IP}i" combinedio
</IfModule>

</IfModule>

<IfModule mod_log_config.c>
LogFormat "%v:%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{CF-Connecting-IP}i" combinedvhost
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{CF-Connecting-IP}i" combined
LogFormat "%h %l %u %t \"%r\" %>s %b %{CF-Connecting-IP}i" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

CustomLog logs/access_log common
CustomLog logs/access_log combined
CustomLog logs/access_log combinedvhost

</IfModule>

上述LogFormat仅影响位于以下位置的主访问日志:/usr/local/apache/logs/access_log但是,它不会影响服务器上任何访问日志位于以下位置的虚拟主机:/home/username/access-logs/domain.com

我不确定LogFormat本身是否有问题,或者我错过了什么。我花了很多时间试图解决这个问题,但没有找到解决方案。如果有人能够对此有所了解,我将非常感激。谢谢。

1 个答案:

答案 0 :(得分:0)

我遇到同样的问题..我发现我读/编辑的文件是假的。尝试搜索其他配置。在xampp .. extra / httpd-vhost.conf中的配置

我发现了这个

##<VirtualHost *:80>
##    ServerAdmin webmaster@dummy-host.example.com
##    DocumentRoot "C:/app/htdocs/dummy-host.example.com"
##    ServerName dummy-host.example.com
##    ServerAlias www.dummy-host.example.com
##    ErrorLog "logs/dummy-host.example.com-error.log"
##    CustomLog "logs/dummy-host.example.com-access.log" common
##</VirtualHost> 

删除&#39;#&#39; ;尝试在虚拟主机配置中编辑..我相信你在主站点编辑..也许你可以共享与你的vhost相关的配置..