因为apache运行会产生大量的访问日志和错误日志,所以我们要对日志进行切割,方便管理人员查看。
1. 主配置文件中日志的相关格式规定
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
# %h 来源IP
# %u 访问用户
# %t 访问时间
# %r 动作
有些时候用户会使用代理服务器,这里会显示代理服务器IP,在%后面加上 %{X-FORWARDED-FOR}i即可显示真是IP。
2. 日志切割
修改虚拟主机的access日志定义,在httpd-vhosts.conf中添加如下代码行
customLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/test.com-access_%Y-%m-%d_log 86400" combined
# -l 后面根日志输出路径
# 86400 表示86400秒,按日切割
3. 不记录指定文件类型的日志
ErrorLog "logs/test.com-error_log"
SetEnvIf Request_URL ".*\.gif$" image-request # 对gif文件做一个标记 image-request,也可以写成 abc。SetEnvIf要和CustomLog写在一起
SetEnvIf Request_URL ".*\.jpg$" image-request
SetEnvIf Request_URL ".*\.png$" image-request
SetEnvIf Request_URL ".*\.bmp$" image-request
SetEnvIf Request_URL ".*\.swf$" image-request
SetEnvIf Request_URL ".*\.js$" image-request
SetEnvIf Request_URL ".*\.css$" image-request
CustomLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/test.com-access_%Y-%m-%d_log 86400" combined env=!image-request # 不记录做过标记的文件