【问题标题】:foreverjs doesn't write console.log of the child process to log filesforeverjs 不会将子进程的 console.log 写入日志文件
【发布时间】: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


    【解决方案1】:

    回答我自己的问题。

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

    【讨论】:

      猜你喜欢
      • 2018-02-03
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多