gpt4 book ai didi

ubuntu - 应用程序在运行 logrotate 后写入 ".log.1"文件而不是 ".log"文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:01 25 4
gpt4 key购买 nike

强制运行 logrotate 后,我的应用程序继续写入 my_app.log.1(应该稍后存档的旧日志)而不是 my_app.log

这使 my_app.log 成为一个空文件,因此 logrotate 运行时没有任何效果。 my_app.log.1 不断增长到千兆字节。

我正在运行 Ubuntu 12.04。我的应用程序是一个使用 pm2 的 Node.js 应用程序.以下是我的 logrotate 配置:

"/var/log/my_app/*.log" {
daily
size 50M
rotate 10
missingok
compress
delaycompress
notifempty
}

我知道我把 notifempty 放在那里了,但为什么首先要写入 my_app.log.1

最佳答案

我终于想出了解决问题的方法。

这是因为日志文件是由 pm2 写入的。 logrotate 将其名称更改为 my_app.log.1 并创建了新的 my_app.log 文件,但是 pm2 没有关心这个并不断写入 my_app.log.1

我通过将 notifempty 选项替换为 copytruncate 解决了这个问题,然后重新启动了 pm2。修复后,notifempty 可以添加回来,但我并不真的需要它。

参见 logrotate reference了解更多信息。希望这能帮助其他遇到类似问题的人。

关于ubuntu - 应用程序在运行 logrotate 后写入 ".log.1"文件而不是 ".log"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22193874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com