PM2 Logrotate不断生成新日志

时间:2017-06-01 08:14:21

标签: node.js unix logging pm2 pm2-logrotate

我为PM2 Logrotate设置了以下设置:

rotateInterval= * * 23 * * *
max_size= 100MB   

我想每隔23小时轮换一次日志和/或保留最多100MB的日志文件。但由于一些奇怪的原因,PM2 Logrotate不断地循环/创建新的日志文件,所以我失去了查看日志历史的能力,i。 e pm2 logs --lines 300仅显示已创建新日志。这是我在终端中看到的输出:

pm2-logrotate > "/root/.pm2/logs/scraper-init-out-1__2017-06-01_08-00-25.log" has been created

pm2-logrotate > "/root/.pm2/logs/pm2-logrotate-out-2__2017-06-01_08-00-25.log" has been created  

pm2-logrotate > "/root/.pm2/logs/pm2-logrotate-out-2__2017-06-01_08-00-55.log" has been created                                                       

pm2-logrotate > "/root/.pm2/logs/pm2-logrotate-out-2__2017-06-01_08-01-25.log" has been created  

我在这里做错了什么?

2 个答案:

答案 0 :(得分:3)

我和你有同样的问题。将max_size从100MB更改为100M。该文档的max_size默认为10MB,但它提供的选项为10G, 10M, 10K。显然,它不知道如何处理MB vs M

答案 1 :(得分:1)

根据文档,您可以按照以下方式安排日志轮播:

*    *    *    *    *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    |
│    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun)
│    │    │    │    └───── month (1 - 12)
│    │    │    └────────── day of month (1 - 31)
│    │    └─────────────── hour (0 - 23)
│    └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)

https://github.com/pm2-hive/pm2-logrotate

如果设置rotateInterval '* * 23 * * *',则log-rotate将在第23个小时的每分钟每秒旋转一次日志。

除了每天更改设置外,我不认为你可以每23小时轮换一次,但要在每天的第23个小时轮换,你可以这样设置:rotateInterval '0 0 23 * * *'

另请注意,因为' second'设置是可选的,因此您可以更简单地将其表达为:rotateInterval '0 23 * * *'

编辑:

这将显式将所有pm2-logrotate选项设置为其默认值:

pm2 set pm2-logrotate:retain 7
pm2 set pm2-logrotate:compress false 
pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss 
pm2 set pm2-logrotate:max_size 10M 
pm2 set pm2-logrotate:retain 7 
pm2 set pm2-logrotate:rotateInterval '0 0 * * * '
pm2 set pm2-logrotate:rotateModule true 
pm2 set pm2-logrotate:workerInterval 30