如何在Apache(适用于Windows)上出现每日错误和访问日志?


10

我们正在运行Apache 2.2.9(Win32),并在一台服务器上配置了一些虚拟主机。每个都有自己的ErrorLog和CustomLog设置,格式分别为“日志/ [域名] -error.log”和“日志/ [域名] -access.log”。不幸的是,这些文件现在正在创建很大的文件。

在IIS上,您可以指定日志计划,该计划可以将它们设置为“ yymmdd.log”的每日格式。我在这里可以做类似的事情吗?

不必每天,每周或每月都可以。我只想将它们分解,以便我们可以保留X数量而不是以前记录的所有内容。一个快速的Google似乎提出了很多针对Linux的答案,其中涉及日志拆分器,脚本和cron作业,这对于Windows安装不太有用。

更新资料

多亏了radius,我对httpd-vhosts.conf进行了调整,以使用Apache的内置rotatelogs命令,格式如下:

ErrorLog "|bin/rotatelogs logs/[domain name]-error.%Y-%m-%d-%H_%M_%S.log 5M" CustomLog "|bin/rotatelogs logs/[domain name]-access.%Y-%m-%d-%H_%M_%S.log 5M" common

当当前日志文件达到5MB时,他们将创建一个新的日志文件。我知道这不是每天所要求的,但这会使它们保持在可以控制的大小内。几秒钟后,我确实尝试了旋转,但是似乎没有将时间戳正确地放入文件名中(特别是小时,分钟和秒)。

Answers:


11

您正在寻找的是apache随附的rotatelogs程序 http://httpd.apache.org/docs/2.2/programs/rotatelogs.html

例如,要每天半夜轮换日志:

CustomLog "|bin/rotatelogs -f /var/log/apache2/logfile.%Y.%m.%d.log 86400" common

+1,不知道Apache有自己的解决方案。
Karolis T.

对于使用Ubuntu的任何人,您可能需要将路径更改为/usr/bin/rotatelogs,因为rotatelogs找到了该路径。否则,Apache将由于错误而无法重启。
BadHorsie



0

直接尝试

CustomLog "|C:/<chemin vers apache>/bin/rotatelogs.exe E:/<chemin vers les logs>/<monsite>/access-%Y_%m_%d.log 86400 60" combined

2
请添加对此功能的说明。
kasperd 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.