Apache 不输出 .log

Apache 不输出 .log

我正在尝试修复 apache 日志填满 /var/log/ 分区的问题。这是 apache2 中的一个日志,大小接近 4GB。我已将 logrotate 设置为在 3G 时轮换,但它没有轮换日志。此外,logrotate 在顶部看起来像这样,

/var/log/apache2/*.log

这似乎意味着它只会轮换 .log 文件。apache2 中的日志是 sitename.org,后面没有 .log。这是正常现象吗/这就是日志无法正确轮换的原因吗?有名为 sitename.org-error.log 的日志,以及这些日志的压缩版本,但老实说,我对 apache 如何处理日志了解不够多,不知道这些日志是否与占用分区的大文件是分开的。

答案1

是的,您读得对 - 在您的情况下,默认的 logrotate 配置将仅轮换名称以 结尾的 apache2 日志文件.log

可以通过使用使其旋转所有文件/var/log/apache2/*,但这可能会有问题(因为该通配符也会匹配旧的旋转日志文件)

您最好的做法是修改 apache 配置,以便调用日志sitename.org.log而不是仅仅调用日志sitename.org(当然,如果有脚本期望日志被准确调用,您可能需要修改系统的其余部分sitename.org

或者,您可以手动指定所有非标准命名的日志文件,例如:

/var/log/apache2/*.log /var/log/apache2/sitename.org /var/log/apache2/sitename2.org

这将节省您在系统其余部分修复硬编码名称的时间,但需要手动输入(稍后更新!)所有域的所有日志文件名(如果它们很少并且您从不添加新的,那么就没什么大不了的)。

还要注意的是,logrotate 通常每天从 cron 运行一次,因此如果你将 logrotate 设置为在 时轮换3GB,它仍可能会增长到超过这个值(具体增长多少取决于一天生成了多少行日志条目)

相关内容