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 删除旧日志而不用大量数据开始粉碎我的机器?
我也有这个问题。我认为目前存在一个错误,pm2-logrotate
该workerInterval
选项被忽略,并且它仅根据该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 计时语法的工作原理(像我一样),您可以使用此站点。