我们正在运行 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 时,他们将创建一个新的日志文件。我知道这不是每天要求的,但这可以使它们保持在可管理的大小。我确实在这么多秒后尝试了旋转,但它似乎没有正确地将时间戳记在文件名中(特别是小时、分钟和秒)。
您正在寻找的是 apache http://httpd.apache.org/docs/2.2/programs/rotatelogs.html附带的 rotatelogs 程序
例如,要在每天午夜轮换日志:
您想要的称为日志轮换。
谷歌似乎列出了一些关于 Windows 日志轮换工具的相关链接。
这似乎是一个 Apache 特定的解决方案,也许它会帮助你:
http://www.sprint.net.au/~terbut/usefulbox/apachelogrot.htm
这里的文档:
http://httpd.apache.org/docs/2.2/programs/rotatelogs.html
直接尝试