Apache 拆分日志

Apache 拆分日志

我有一个繁忙网站的日志,增长速度非常快。我想知道是否有办法每天“拆分”日志文件,而无需使用外部工具。

编辑:我的错,我在 Windows 服务器 2003 上,Apache 版本 2.0.64。

答案1

Apache httpd 能够通过管道将错误和访问日志文件写入另一个进程,而不是直接写入文件。此功能大大提高了日志记录的灵活性,而无需向主服务器添加代码。为了将日志写入管道,只需将文件名替换为管道字符“|”,后跟应在其标准输入上接受日志条目的可执行文件的名称。

您可以使用此技术将日志传送到脚本,然后脚本会以您喜欢的任何方式拆分日志。这通常用于按虚拟主机拆分。

答案2

您可以使用 logrotate 来保持日志文件较小,也可以压缩它们。

例如,您可以使用类似以下内容:

/var/log/apache/*.log {
      daily
      rotate 5
      size 100M
      compress
      postrotate
         /usr/bin/killall -HUP apache
      endscript
 }

这将保留五个轮换文件。日志将每日轮换并压缩。有关更多信息,请参阅man logrotate

相关内容