旋转Apache日志文件的最佳方法

时间:2008-09-04 15:52:00

标签: apache logging

我有一台Apache服务器,其中一个访问日志文件高达600MB。这使得搜索文件或解析文件变得非常困难 Apache有哪些软件或模块可以每日复制我的访问文件以使其更易于管理?

7 个答案:

答案 0 :(得分:46)

您是否看过logrotate - 这可能是实现这一目标的最简单,最广泛且最易理解的方法。它具有高度可配置性,可能会达到您所需要的90%。

答案 1 :(得分:26)

我是Cronolog的粉丝。只需通过它安装和管道日志即可。对于每日日志轮换,这样的事情会起作用:

ErrorLog  "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/error.log"
CustomLog "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/access.log" combined

非常方便,一旦安装,比logrotate更容易(根据我的经验)。

答案 2 :(得分:12)

Windows的实际命令很难在网上找到:

CustomLog '|" "*Apache-Path/bin/rotatelogs.exe" 
    "**Apache-Path*/logs/backup/internet_access_%d-%m-%y.log" 86400' combined

如果“internet_access”位是您为文件选择的名称,则86400是一天中的秒数。您需要将Apache-Path更改为您已安装Apache的相关目录。

答案 3 :(得分:9)

logrotate的

logrotate可能是最好的解决方案。使用文件/etc/logrotate.conf更改所有日志的设置。您可以将weekly更改为daily,以便每天轮换日志。此外,您可能希望添加compress以便压缩归档。如果您不关心旧日志,则可以将rotate 4设置为更低的值。

答案 4 :(得分:3)

CustomLog“| bin / rotatelogs / var / logs / logfile 5M”common

只要日志文件的大小达到5兆字节,此配置就会轮换日志文件。

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" 

这将是重定向Apache日志的最佳方式。无需使用httpd。

编译mod

答案 5 :(得分:1)

Windows操作系统上的

rotatelog.exe或cronolog.exe。它们用于http.conf中的管道命令 用于apache的Mod_log_rotate附加模块仅用于访问日志轮换 仅针对unix操作系统进行Logrotate。

答案 6 :(得分:0)

我有一个模块可以为您完成此操作而无需外部管道等:

http://www.poptart.org/bin/view/Poptart/ModAutorotate

我试图将它添加到Apache模块集合中,但这似乎已经被打破了一段时间。