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

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

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

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

也不必是每天,每周或每月都可以。我只是想把它们分开,这样我们就可以保留 X 量,而不是所有记录。快速谷歌搜索似乎会带来很多面向 Linux 的答案,涉及日志分割器、脚本和 cron 作业,这对 Windows 安装没有太大帮助。

更新

感谢 radius,我调整了我的httpd-vhosts.conf使用 Apache 内置的旋转日志命令,格式如下:

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 时,它们会创建一个新的日志文件。我知道这不是要求的每日更新,但这样可以将它们保持在可管理的大小。我确实在几秒钟后尝试了轮换,但似乎没有正确地将时间戳放在文件名中(特别是小时、分钟和秒)。

答案1

您正在寻找的是 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

答案2

你想要的就是日志轮换。

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

这看起来像是 Apache 特定的解决方案,也许它会对您有所帮助:

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

答案3

答案4

尝试直接使用

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

相关内容