我的每个虚拟主机上都有这个指令。它很快就占用了我所有的硬盘空间,必须手动清除。我需要在我的 ghost 中添加一些指令。
对于 httpd_vhosts.conf 中的每个虚拟主机,我都有此行。
ErrorLog /Library/WebServer/thisHostsDirectory/err_thisvhost.log
- 我如何告诉 apache 每 xx 天清除一次日志。
- 如何添加指令来记录此日志中的远程 IP
- 如何在此日志中排除我的本地主机和其他特定 IP。
谢谢。
答案1
以下是轮换 Apache 日志的方法:
ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"
该文档包含您需要的一切:http://httpd.apache.org/docs/2.2/programs/rotatelogs.html
答案2
处理此问题的正常方法是将 Web 服务器日志文件添加到rotatelogs
。这会在达到设定的大小后和/或在设定的时间后轮换日志。
在你的系统上做一个man rotatelogs
来了解它是如何工作的。
更新 刚才忘了提一下,您应该将旋转的日志文件传送到压缩程序以将日志存档。
关于要添加的内容,请查看此处的文档:http://httpd.apache.org/docs/2.2/logs.html和这里:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats
要回答您的 2.),您必须在指令%a
中添加CustomLog
。对于 3.),其他人可能会提出解决方案。我会将输出通过管道传输到 awk 或 sed,并删除以 127.0.0.1 和|或 localhost 开头的行。但可能有更好的方法。