轮换Apache日志文件的最佳方式

我有一个Apache服务器,有一个访问日志文件,顶级600MB。 这使得search文件或parsing文件变得非常困难。
Apache的哪些软件或模块可以使我的访问文件的日常副本更容易pipe理?

你看过logrotate吗?这可能是最简单,最广泛和最易理解的方法。 这是高度可configuration的,可能会做你所需要的90%。

我是Cronolog的忠实粉丝。 只需安装并通过它pipe日志。 对于日常的日志轮换,像这样的东西可以工作:

 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。

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

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

在“internet_access”位是您为文件select的名称的情况下,86400是一天中的秒数。 您需要将Apache-Path更改为您已安装Apache的相关目录。

logrotate可能是最好的解决scheme。 使用文件“/etc/logrotate.conf”更改所有日志的设置。 您的面包车将“每周”更改为“每日”,以便每天轮换日志。 此外,你可能想要添加“压缩”,所以压缩档案。 如果你不关心旧的日志,你可以设置旋转'旋转4'到更低的东西。

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

只要达到5兆字节的大小,此configuration就会旋转日志文件。

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

这将是redirectApache日志的最佳方式。 不需要用httpd编译mod。

rotatelog.exe或cronolog.exe在Windows操作系统上。 它们用在http.conf中的pipe命令中Mod_log_rotate用于apache的附加模块仅用于访问日志轮转Logrotate仅用于Unix操作系统。

我有一个模块,为您做这个,而不需要外部pipe道等:

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

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