我有一台Apache服务器,其中一个访问日志文件高达600MB。这使得搜索文件或解析文件变得非常困难 Apache有哪些软件或模块可以每日复制我的访问文件以使其更易于管理?
答案 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
可能是最好的解决方案。使用文件/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)
rotatelog.exe或cronolog.exe。它们用于http.conf中的管道命令 用于apache的Mod_log_rotate附加模块仅用于访问日志轮换 仅针对unix操作系统进行Logrotate。
答案 6 :(得分:0)
我有一个模块可以为您完成此操作而无需外部管道等:
http://www.poptart.org/bin/view/Poptart/ModAutorotate
我试图将它添加到Apache模块集合中,但这似乎已经被打破了一段时间。