如何在Apache(Windows)上有每日错误和访问日志?

我们运行Apache 2.2.9(Win32),在一台服务器上configuration了几个虚拟主机。 每个都有它自己的ErrorLog和CustomLog设置,格式为“logs / [domain name] -error.log”和“logs / [domain name] -access.log”。 不幸的是,这些正在创build相当大的文件。

在IIS上,您可以指定日志日程安排,这可以将日志格式设置为“yymmdd.log”。 有什么我能做的吗?

它不一定是每天,每周或每月都可以做。 我只想分解它们,以便我们可以保留X数量,而不是logging下来的所有数据。 一个快速的谷歌似乎提出了很多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时,他们将创build一个新的日志文件。 我知道这不是每天都要求的,但是这使得它们保持在可以处理的大小。 我经过了很长时间的尝试旋转,但似乎没有正确(特别是小时,分钟和秒)在文件名称中的时间戳。

你正在寻找的是rotatelogs程序,随着Apache http://httpd.apache.org/docs/2.2/programs/rotatelogs.html

例如,要在午夜每天轮换您的日志:

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

你想要的就是所谓的日志旋转。

Google似乎列出了一些关于Windows日志旋转工具的相关链接。

这似乎是一个Apache特定的解决scheme,也许它会帮助你:

http://www.sprint.net.au/~terbut/usefulbox/apachelogrot.htm

尝试直接与

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