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

时间:2020-03-05 18:47:41  来源:igfitidea点击:

我有一个Apache服务器,该服务器具有一个访问日志文件,该访问日志文件的大小最高为600MB。这使得搜索文件或者解析文件变得非常困难。
有哪些适用于Apache的软件或者模块可以每天制作访问文件的副本,以使其更易于管理?

解决方案

回答

我们是否看过logrotate,这可能是实现此目的的最简单,应用最广泛且最易理解的方法。它是高度可配置的,可能会完成我们需要的90%。

回答

logrotate可能是最好的解决方案。使用文件" /etc/logrotate.conf"来更改所有日志的设置。我们可以将"每周"更改为"每日",以便每天轮换日志。另外,我们可能想添加compress,以便压缩档案。如果我们不关心旧日志,可以将"旋转4"设置为更低的值。

回答

我是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容易(以我的经验)。

回答

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的相关目录。

回答

Windows OS上的rotationlog.exe或者cronolog.exe。它们在http.conf中的管道命令中使用
Mod_log_rotate仅适用于Apache的添加模块用于访问日志旋转
仅对Unix操作系统进行Logrotate。

回答

我有一个模块可以为我们执行此操作,而无需外部管道等:

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

我尝试将其添加到Apache模块集合中,但现在似乎已经被破坏了一段时间。