ForeverJS不将子进程的控制台.log写入日志文件



我有一个nodejs服务器正在运行,它每x秒使用setInterval函数轮询一次数据。应用程序的这一部分看起来像这样:

startPolling () {
debug('Snmp poller started');
timers.setInterval(
this.poll(),
config.get('Snmp.interval')
);
}
poll () {
return () => {
if (dbConnection.get()) {
debug('Polling data');
this.fetchSiteNodes(this.site);
}
};
}

接下来,在我的pacakge.json文件中,我用这个冗长的命令运行服务器:

NODE_PATH=$NODE_PATH:./NODE_ENV=开发forever-p logs-a-l forever.log-o logs/output.log-elogs/error.log-d启动/bin/www-

我将在这里进行分解:

  • -p日志-我希望所有日志所在的logs目录的路径
  • -a-在forever.log文件末尾添加日志
  • -l forever.log-要写入的日志文件的名称
  • -o logs/output.log-stdout所在文件的名称(如果我没有弄错的话?)
  • -e logs/error.log-来自子进程的所有错误所在的文件的名称
  • -d-调试模式?(更详细的调试?)
  • 开始-永远开始

根据上面的代码片段和forever命令,我希望logs/output.log文件将包含脚本中的所有console.logs(...)输出,因此它将包含以下内容:

Snmp poller started
polling data +10
// after 10 secons 
polling data +10

不幸的是,事实并非如此,基本上所有的日志文件都是空的。

如何让子进程将console.logs写入永久进程的output.log文件?

谢谢!

回答我自己的问题。

我错过了使用调试库的事实,也没有在npm命令中包含调试级别,在添加DEBUG=server,app,database后,它开始按预期工作。最终,我也可以添加DEBUG=*,但随后的输出是压倒性的,包含所有mongodb查询等。

相关内容

  • 没有找到相关文章

最新更新