控制台日志和错误是否在 pm2 中被垃圾收集?

Do console logs and errors get garbage collected in pm2?

据我了解,日志不会在 node.js 中被垃圾收集,因此进行大量日志记录的应用程序可能会导致内存耗尽。

但是 pm2 的日志记录工具是否改变了这一点? 即,如果我 运行 pm2 下的 node.js 脚本喷出大量 console.log(消息),那么 pm2 'intercept' 它们是否会释放它,大概是从内存中释放它并写入它到一个文件,或者它只是观察 stdout & stderr 并将新行复制到它们各自的 out/error .pm2/logs 文件中?

是的,您说得对,pm2 只是将 stdout 和 stderr 捕获到日志文件中。 但它也有一些选项来控制日志。 您可以像这样通过 ecosystem.config.json 禁用写入公共日志:

{
  "out_file": "/dev/null",
  "error_file": "/dev/null"
}

但不推荐。 PM2 还提供了一个工具来通过此模块旋转日志 pm2-logrotate.

您可以将系统 logrotate 与配置文件结合使用的另一种方法如下:

/path/to/.pm2/logs/*.log {
        rotate 10
        weekly
        missingok
        notifempty
        compress
        delaycompress
        copytruncate
        create 0640 group user
}

更多信息,我们查看官方文档:pm2-log-management