使用 logrotate 旋转不同名称的日志

使用 logrotate 旋转不同名称的日志

日志名称在生成时会附加时间戳,如 log-20140526-062503.txt 有办法管理这个吗?我尝试使用自定义状态文件,但日志轮换不会删除旧文件。

/var/logs/*.txt {
rotate 15
daily
compress
missingok
nocreate
}

有什么帮助吗?

答案1

问题是,logrotate会将具有此自定义名称的每个新日志文件视为要轮换的单独实体(就像如果文件模式为,则会单独处理access_log和一样)。因此,您永远不会轮换 15 个项目。error_log/var/log/httpd/*log

解决此问题的一种方法是使用以下maxage选项:

最大计数

删除超过几天的轮换日志。仅当要轮换日志文件时才检查年龄。如果配置了 maillast 和 mail,则文件将邮寄到配置的地址。

但我不确定这是否真的有效。

如果这不起作用,我建议使用一个 cron 作业来删除与通配符匹配的超过 15 天的文件,因为看起来您的应用程序每天都在使用一个新的日志文件。

相关内容