如何管理apache的error_log和access_log?

如何管理apache的error_log和access_log?

我注意到我的error_log文件变得越来越大。

我尝试更改 LogLevel 中httpd.conf

LogLevel debug

LogLevel emerg

但我仍然看到发布了有关favicon.ico未找到的错误等等。

如果我删除error_log,我将不得不重新启动apache,这会导致当前查看者出现一些停机时间。

  • 有没有办法告诉apache 不是写什么error_log
  • 或者有没有办法确保它不会增长超过 1 mb(当它没有关闭时)?

我注意到access_logs正在“存档”,但我宁愿根本不创建它们。

这些存档access_logs是否会被删除,还是我必须自己删除它们?

答案1

您可以使用logrotate,它允许您轮换日志(基于日期、大小...)并选择要保留的文件数量。例如,这是我的 apache 配置文件:

/var/log/apache2/*.log {
        weekly
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                if /etc/init.d/apache2 status > /dev/null ; then \
                    /etc/init.d/apache2 reload > /dev/null; \
                fi;
        endscript
}

答案2

您可以使用诸如计时日志管理 Web 服务器日志文件。使用 cronolog,日志文件可以自动轮换,而无需关闭并重新启动 Web 服务器。

摘抄

cronolog 是一个简单的过滤程序,它从标准输入读取日志文件条目,并将每个条目写入由文件名模板以及当前日期和时间指定的输出文件。当扩展文件名更改时,当前文件将关闭并打开一个新文件。 cronolog 旨在与 Web 服务器(例如 Apache)结合使用,将访问日志拆分为每日或每月日志。

相关内容