解决apache日志文件太大的问题

原创 jingccj  2018-06-16 08:41:36  阅读 2758 次 评论 0 条

TIM截图20180106161223.jpg

有没有发现Apache生成的日志文件一天比一天大,不是一般大,若你apache安装在C盘,那可惨了,不几天硬盘就满了,太恐怖了,有没有办法优化一下日志,让它不那么大?答案是有的。

一、停止Apache服务,删除Apache下/logs/目录中的error.log和access.log文件。

二、打开Apache的conf/httpd.conf配置文件,找到以下配置信息:

ErrorLog logs/error.log

CustomLog logs/access.log common

请在上述两行配置代码前加“#”号注释掉,

对于注释掉上面两行的操作,完全没用。一段时间过去了,日志文件还是达到了惊人的20多G

微信图片_20190814104420.png

继续寻找解决方法,发现如下办法:

LogLevel warn
=====================
其中,LogLevel用于调整记于错误日志中的信息的详细程度。(参阅ErrorLog指令)。可以选择下列级别,依照重要性降序排列:

Level Description Example
emerg 紧急 – 系统无法使用。 “Child cannot open lock file. Exiting”
alert 必须立即采取措施。 “getpwuid: couldn’t determine user name from uid”
crit 致命情况。 “socket: Failed to get a socket, exiting child”
error 错误情况。 “remature end of script headers”
warn 警告情况。 “child process 1234 did not exit, sending another SIGHUP”
notice 一般重要情况。 “httpd: caught SIGBUS, attempting to dump core in …”
info 普通信息。 “Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)…”
debug 出错级别信息 “Opening config file …”

默认级别是warn,那么warn级别以上的日志都会记录,会产生大量“文件不存在”的erro级别的错误日志。建议使用 crit 级别的设置,这样只记录致命级别以上的日志,有效减少日志数量。

把LogLevel warn更改为LogLevel crit  然后重启apache即可。


将warn 改为crit了,过段时间再看看情况吧。(2019年8月14日更新)


按照下面的修改:

错误日志文件error.log限制错误日志文件为 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"

日志文件access.log限制访问日志文件为 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

修改完成后,保存httpd.conf文件,重启Apache,过两天再看下日志文件吧?肯定好多了。

本文地址:https://www.dnly.net/post/5.html
版权声明:本文为原创文章,版权归 jingccj 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?