如何启动一个新的 apache 错误日志?

如何启动一个新的 apache 错误日志?

我在 PHP 脚本中做了大约 100 万次愚蠢的事情,所以我的 Apache 错误日志现在有 12 MB!这对于调试来说可不是什么好事。

  1. 在什么情况下error.log会变成error.log.1和error.log.2.gz?
  2. 是否有一个 Linux 命令可以手动滚动日志以获取最新的 error.log

我希望有人知道一个简单的方法来实现这一点。如果没有,我会写一个 BASH 脚本。

谢谢。

答案1

  1. 由于日志旋转工具,您的日志正在旋转
  2. 如果您想轮换 apache 日志,可以使用此命令手动轮换日志。

logrotate /etc/logrotate.d/apache2 或 (file_to_be_rotated)

此工具可帮助您管理生成大量日志文件的系统。它允许自动轮换、压缩、删除和邮寄日志文件。每个日志文件可以按日、周、月或当其变得太大时进行处理。

答案2

删除文件并向写入日志文件的进程发送 HUP 信号是规范的做法。

对于 apache 来说,最好重新加载服务。

答案3

这并不能直接回答您的问题,但可能会为您提供更多选择。Apache 允许您将日志输出通过管道传输到从 stdin 读取的进程。我避免大量日志文件的首选策略是通过名为 cronolog 的实用程序传输 Apache 的日志输出,该实用程序在大多数 Linux 安装中作为可选包提供。它不会轮换到名为error_log.1error_log.2等的文件,而是可以按日期和/或时间进行轮换。

例如:

ErrorLog  "|/usr/bin/cronolog /path/to/httpd/logs/error_log.%Y-%m-%d"

这会将 2012 年 2 月 1 日的错误日志发送到名为 的文件中error_log.2012-02-01,一旦时间滚动到 2012 年 2 月 2 日,它就会开始写入,error_log.2012-02-02依此类推。

您还可以将其设置为按月、按星期几、按小时、按分钟或按秒轮换,无论您需要什么。更多信息在 cronolog.org

如果您真的雄心勃勃,您可以编写自己的 Perl 脚本或任何脚本来从 stdin 读取并写入日志文件或使用您想要的任何规则执行操作(例如向您发送电子邮件),然后通过该脚本传输 Apache 的日志。

相关内容