- 注册时间
 - 2012-11-28
 - 最后登录
 - 2021-2-12
 - 阅读权限
 - 200
 - 积分
 - 3774
 - 精华
 - 0
 - 帖子
 - 116
  
 
 
 
    
 
ta_mind  | mb_qb7 2013-3-19 01:56 | 
|---|
 
  classn_01: 366 classn_02 [LV.9]以坛为家II 
 | 
这几天 Apache 错误日志巨大,莫名其妙的有9.8G,而且很多都是那种页面不存在的网站太多了,死链接相应的也很多,于是把错误警告调低了。 
因为写日志会给系统带来很大的损耗。关闭日志以后,甚至最高可以提高整体性能近40%(粗略估计)。那么如何关闭日志呢? 
可以通过降低 log 级别的办法来减少日志读写。 
这里要提醒的是,这么做将给“入侵检测”以及其他基于日志分析的工作带来麻烦。所以请谨慎使用。 
网上相关文章很多,但说的都不详细,擦边而过,下面详细说一下具体操作步骤。 
编辑 conf 文件夹下的 httpd.conf 文件,找到如下内容: 
=====================## LogLevel: Control the number of messages logged to the error_log.# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.#LogLevel warn===================== 
1 
2 
3 
4 
5 
6 
7 
8 
 
 | ===================== 
# 
# LogLevel: Control the number of messages logged to the error_log. 
# Possible values include: debug, info, notice, warn, error, crit, 
# alert, emerg. 
# 
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即可。 
 
 |   
 
  
 |