Alm*_*mir 1 unix logging node.js pm2 pm2-logrotate
我为PM2 Logrotate设置了以下设置:
rotateInterval= * * 23 * * *
max_size= 100MB
Run Code Online (Sandbox Code Playgroud)
我想每23小时轮换一次日志,并且/或者最多保留100MB的日志文件。但是由于某些奇怪的原因,PM2 Logrotate经常旋转/创建新日志文件的方式太频繁,因此我无法查看日志的历史记录,即。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
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?
根据文档,这是您想要安排日志轮换的方式:
* * * * * *
? ? ? ? ? ?
? ? ? ? ? |
? ? ? ? ? ? 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)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
小智 6
我和你有同样的问题。将max_size从更改100MB
为100M
。该文档的max_size默认值为,10MB
但提供的选项为 10G, 10M, 10K
。显然,它不知道是做什么用MB
VS M
。