Pm2使用pm2-logrotate记录大尺寸

时间:2018-01-02 09:28:23

标签: node.js logging pm2 pm2-logrotate

我遇到了pm2的麻烦。

我正在使用一个名为pm2-logrotate的模块,但日志中有一个巨大的gize,如1.7G,不尊重我的配置

== pm2-logrotate ==
┌────────────────┬───────────────┐
│ key            │ value         │
├────────────────┼───────────────┤
│ compress       │ true          │
│ rotateInterval │ * * */1 * * * │
│ max_size       │ 10M           │
│ retain         │ 1             │
│ rotateModule   │ true          │
│ workerInterval │ 30            │
└────────────────┴───────────────┘

那么我能对pm2做什么可以删除旧日志并且不会开始使用大量数据来破坏我的机器?

1 个答案:

答案 0 :(得分:1)

我也有这个问题。我认为目前 pm2-logrotate 中存在一个错误,其中 workerInterval 选项被忽略,它仅根据 rotateInterval 选项轮换(即默认情况下每天一次)。这意味着文件可能会比您使用 max_size 选项指定的大小大得多。查看选项 here

我通过将 rotateInterval 选项设置为每 30 分钟而不是每天一次的默认设置来“解决”它。指令如下:

pm2 set pm2-logrotate:rotateInterval '*/30 * * * *'

这样做的问题在于,这意味着无论日志大小如何,它们都会每 30 分钟轮换一次。另一个临时解决方案是使用 crontab 运行 pm2 flush(删除所有日志)。首先在终端中运行 crontab -e,然后将此行添加到文件中:

*/30 * * * * pm2 flush

如果您有一个产生大量日志的特定应用程序,您还可以使用 pm2 flush your_app_name 刷新特定应用程序。如果你不擅长记住 cron 计时语法的工作原理(像我一样),你可以使用 this site