我们运行的是 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 特定的解决方案,也许它会对您有所帮助:
答案3
答案4
尝试直接使用
CustomLog "|C:/<chemin vers apache>/bin/rotatelogs.exe E:/<chemin vers les logs>/<monsite>/access-%Y_%m_%d.log 86400 60" combined