我们正在运行 Apache 2.2.9 (Win32),在一台服务器上配置了一些虚拟主机。每个都有自己的 ErrorLog 和 CustomLog 设置,格式为“logs/[domain name]-error.log”和“logs/[domain name]-access.log”。不幸的是,这些现在正在创建相当大的文件。
在 IIS 上,您可以指定日志计划,可以将它们以“yymmdd.log”的每日格式放置。我可以在这里做类似的事情吗?
它也不必每天,每周或每月都可以。我只想将它们分解,以便我们可以保留 X 数量而不是它曾经记录的所有内容。一个快速的谷歌似乎提出了许多面向 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 时,他们将创建一个新的日志文件。我知道这不是每天要求的,但这可以使它们保持在可管理的大小。我确实在这么多秒后尝试了旋转,但它似乎没有正确地将时间戳记在文件名中(特别是小时、分钟和秒)。