如果网站开启了apache日志文件以及错误日志功能,那么很可能apache日志文件access.log在一段时间内就会很庞大至上百兆甚至几十个G,尤其大访问量的网站更是如此。error_log错误日志文件也会产生这样的情况,这样一来我们在分析apache日志的时候就会消耗很大的内存,那么有没有方法限制一下apache日志的大小呢?答案是肯定的.
我们通常的做法是在{$apache}/conf/httpd.conf中设置Apache的参数,然而我们并没有发现可以设置日志文件大小的配置指令,通过参考http://httpd.apache.org/docs/2.0/programs/rotatelogs.html,可以用apache 自己的程序 rotatelogs(位于 {$apache}/bin/目录下),来限制日志文件的大小.
在 Linux 下的设置例子如下:
打开 Apache 的 httpd.conf配置文件并找到下面两条配置
ErrorLog logs/error.log
CustomLog logs/access.log common
修改为下面的代码(路径请根据你的服务器设置修改)
# 限制错误日志文件为 1M
ErrorLog "|/server/apache/bin/rotatelogs /server/apache/logs/error-%Y-%m-%d.log 1M"
ErrorLog "|/www/wdlinux/apache/bin/rotatelogs /www/wdlinux/apache/logs/error-%Y-%m-%d.log 1M" (wdcp面板适用)
# 每天生成一个错误日志文件
ErrorLog "|/server/apache/bin/rotatelogs /server/apache/logs/error-%Y-%m-%d.log 86400"
# 限制访问日志文件为 1M
CustomLog "|/server/apache/bin/rotatelogs /server/apache/logs/access-%Y-%m-%d.log 1M" common
CustomLog "|/www/wdlinux/apache/bin/rotatelogs /www/wdlinux/apache/logs/access-%Y-%m-%d.log 1M" common (wdcp面板适用)
# 每天生成一个访问日志文件
CustomLog "|/server/apache/bin/rotatelogs /server/apache/logs/access-%Y-%m-%d.log 86400" common
在 Windows 主机设置下的设置例子如下(路径请根据你的服务器设置修改):
第一步:删除 Apache2/logs/目录下的 error.log、access.log文件
第二步:打开 Apache 的 httpd.conf配置文件并找到下面两条配置
ErrorLog logs/error.log
CustomLog logs/access.log common
直接注释掉,换成下面的配置文件。
# 限制错误日志文件为 1M
ErrorLog “|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 1M”
# 每天生成一个错误日志文件
#ErrorLog “|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400″
# 限制访问日志文件为 1M
CustomLog “|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 1M” common
# 每天生成一个访问日志文件
#CustomLog “|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 86400″ common
最后重启Apache 服务