【发布时间】:2017-06-19 12:57:26
【问题描述】:
我有一个 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=开发 永远 -p 日志 -a -l 永远.log -o 日志/输出.log -e logs/error.log -d start ./bin/www
我会在这里分解:
- -p logs - 我希望所有日志所在的
logs目录的路径 - -a - 在
forever.log文件末尾添加日志 - -l forever.log - 要写入的日志文件的名称
- -o logs/output.log - stdout 所在文件的名称(如果我没记错的话?)
- -e logs/error.log - 来自子进程的所有错误所在的文件的名称
- -d - 调试模式? (更详细的调试?)
- 开始 - 永远开始
现在从上面的代码 sn-p 和永久命令来看,我希望 logs/output.log 文件将包含脚本的所有 console.logs(...) 输出,因此它将包含如下内容:
Snmp poller started
polling data +10
// after 10 secons
polling data +10
不幸的是这不是发生的事情,基本上所有的日志文件都是空的。
如何让子进程将console.logs写入forever进程的output.log文件?
谢谢!
【问题讨论】:
标签: javascript npm forever