使用 pm2-logrotate 的大尺寸 pm2 日志

Cát*_*tos 6 logging node.js pm2 pm2-logrotate

我在使用 pm2 时遇到了麻烦。

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

== pm2-logrotate ==
??????????????????????????????????
? key            ? value         ?
??????????????????????????????????
? compress       ? true          ?
? rotateInterval ? * * */1 * * * ?
? max_size       ? 10M           ?
? retain         ? 1             ?
? rotateModule   ? true          ?
? workerInterval ? 30            ?
??????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

那么我该怎么做才能让 pm2 删除旧日志而不用大量数据开始粉碎我的机器?

joe*_*joe 3

我也有这个问题。我认为目前存在一个错误,pm2-logrotateworkerInterval选项被忽略,并且它仅根据该rotateInterval选项轮换(即默认情况下每天一次)。这意味着文件可能会比您使用该max_size选项指定的大小大得多。请参阅此处的选项。

我通过将该rotateInterval选项设置为每 30 分钟一次而不是默认的每天一次来“解决”这个问题。这是命令:

pm2 set pm2-logrotate:rotateInterval '*/30 * * * *'
Run Code Online (Sandbox Code Playgroud)

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

*/30 * * * * pm2 flush
Run Code Online (Sandbox Code Playgroud)

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