记录不通过Win上的Winston工作

Con*_*oob 7 linux node.js winston loggly raspbian

我使用Raspbian Jessie OS在Raspberry Pi 2上运行了一个物联网项目.

它是在NodeJS(v4)中运行的Web服务器,我正在使用Winston登录Loggly的日志记录服务.当项目npm start从终端开始(当作为'pi'或通过sudo -s运行时)时,一切正常.但是,当项目启动时,日志记录不起作用,我无法解决原因.

要在启动时启动项目,我创建了一个etc/init.d脚本.该项目启动并为交通提供服务,除了伐木以外,一切都很好.我看不到任何错误(虽然没有记录没有帮助).这是我从etc/init.d脚本中启动项目的方法:

/usr/bin/node /var/www/curtains/server.js
Run Code Online (Sandbox Code Playgroud)

我正在使用winston:https://www.npmjs.com/package/winston和winston-loggly:https://www.npmjs.com/package/winston-loggly .

任何想法为什么,当启动进程时,日志记录不起作用?

按要求添加winston初始化代码:

var winston = require('winston');
require('winston-loggly');

 winston.add(winston.transports.Loggly, {
    token: "<snip>",
    subdomain: "<snip>",
    tags: ["tag", ip.address()],
    json:true
});

winston.log('info',"Server.js starting up");
Run Code Online (Sandbox Code Playgroud)

dun*_*all 2

当您运行时npm start,node 将在 package.json 文件中查找脚本对象,并运行与该start键关联的命令。

在您的init.d脚本中,您没有运行npm start,而是仅运行 node 并将server.js文件作为第一个参数传递(这将运行该文件)。

最有可能的是,您的start脚本中需要某些内容才能正确运行日志记录。要解决此问题,您可以:

  • 在您的init.d脚本中,cwd转到项目根目录,然后运行npm start​​.
  • 查看您的脚本package.json,看看您的脚本还在做什么start,并将等效内容添加到您的init.d脚本中。