Apache服务器的日志(LOG)定制

我们在很多情况下需要定制Apache服务器(HTTPD)的日志(LOG)。比如为了防止Apache LOG文件过大需要定制apache服务器的LOG文件名, 对于某些特定的URL比如图片等的访问不记录LOG等。

1,apache服务器LOG文件名的定制(按时间自动命名)

apache自带了名为一个rotatelogs的组件,可以通过配置达到LOG文件定制的目的。 打开httpd.conf文件: 例:

TransferLog " |/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/access_log 86400" TransferLog " |/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/error_log 86400"

参数1:rotatelogs的路径/文件名。以 | 接头。 参数2:LOG文件的路径/文件名 参数3:LOG文件创建的滚动时间(単位:秒)。上面86400为每24小时重新写入新的LOG文件。

2,apache服务器不记录图片文件的访问LOG

很多情况,我们没必要让apache服务器记录图片/Javascript/CSS等文件的访问LOG,同样可以通过设置httpd.conf来达到目的。 打开httpd.conf文件: 例(Addmodule的以下任意位置):

LoadModule setenvif_module modules/mod_setenvif.so AddModule mod_setenvif.c SetEnvIf Request_URI " /.(gif)|(jpg)|(jpeg)|(js)|(css)|(png)$" no_access_log

将默认设置

CustomLog /var/log/httpd/access_log combined

修改为:

CustomLog /usr/local/apache2/logs/access_log combined env=!no_access_log

重新启动apache

#httpd restart

如此,Apache便会按时自动在新的LOG文件记录日志,也不会记录对图片/Javascript/css文件的访问日志。

apache2 设置

apache2的情况下,如果只有rotatelogs2,可以做类似如下设置:

LoadModule setenvif_module modules/mod_setenvif.so SetEnvIf Request_Method " (GET)|(POST)|(PUT)|(DELETE)|(HEAD)" log SetEnvIf Request_URI " (/.gif|/.jpe?g|/.png|/.css|/.js|/.ico|/image_thumb)$" !log NameVirtualHost * <VirtualHost *> ServerName www.your-domain.com ServerAlias your-domain.com *.your-domain.com CustomLog " |/usr/sbin/rotatelogs2 /var/log/apache2/your-domain-access_log.%Y%m%d 86400 +540" combined env=log </VirtualHost>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值