使 pm2 登录到控制台

Make pm2 log to console

我正在 运行使用 pm2 创建一个节点网络服务器。由于 pm2 生成另一个进程并将 stdout 和 stderr 重定向到文件,我必须在其他地方寻找日志。理想情况下,我希望将节点进程输出到与 运行 pm2 相同的控制台 window。否则,我将满足于 pm2 运行 具有活动控制台 window 的节点进程,并将节点进程的 stdout 和 stderr 写入该控制台 window。如何实现?我在 windows 机器上。

找到答案(他们的文档不是很好),只是添加了 --no-daemon 标志,似乎已经做到了。虽然,它似乎仍在第一次正常运行时记录到文件(即使使用标志)。一旦进程重新启动(我正在观察文件更改),它就会开始注销到控制台

我相信您还可以看到 运行 由命令 运行 守护进程的 stdoutstderr pm2 logspm2 logs [app-name].

您可以通过编程方式执行如下操作:

const pm2 = require('pm2')

pm2.connect(function(err) {
  if (err) {
    console.error(err);
    process.exit(2);
  }
  pm2.start([
    {
      script             : "server.js",
      output: "/dev/stdout",
      error: "/dev/stderr",
    },
  ]
    , function(err, proc) {
      if(err) {
        throw err
      }
    });
})

你可以通过启动另一个 terminal/console 和 运行 这个命令来轻松实现这一点

 pm2 log

将除 console.log

之外的所有内容记录到终端
 pm2 logs

将所有内容记录到终端并console.log

注意第二条命令中的's'

直接转到您要监控日志的应用运行

pm2 logs <app id or app name> --lines 50