Создайте журнал pm2 для консоли

Я запускаю веб-сервер node, используя pm2. Поскольку pm2 запускает другой процесс и перенаправляет stdout и stderr в файлы, я должен искать где-то еще для журналов. В идеале, я хотел бы, чтобы выход процесса node был в том же окне консоли, с которого я запускал pm2. В противном случае я бы согласился на pm2 запустить процесс node с активным окном консоли и запустить stdout и stderr процесса node в это консольное окно. Как это можно достичь? Я нахожусь на машине с Windows.

Ответ 1

Я считаю, что вы также можете увидеть stdout и stderr процесса, который выполняется демонизован командой pm2 logs или pm2 logs [app-name].

Ответ 2

Нашел ответ (их документация не так уж велика), просто добавил флаг --no-daemon, похоже, сделал это. Хотя, похоже, он все еще регистрируется в файле (даже при использовании флага) в первый раз. После перезапуска процесса (я наблюдаю за изменениями файлов) он запускается на консоль

Ответ 3

программно вы можете сделать что-то вроде этого:

const pm2 = require('pm2')

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

  pm2.launchBus((err, bus) => {
    // this part is important
    bus.on('log:out', data => {
      console.log(data.data);
    });
    bus.on('log:err', data => {
      console.log(data.data);
    });
  });
})