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)
当您运行时npm start,node 将在 package.json 文件中查找脚本对象,并运行与该start键关联的命令。
在您的init.d脚本中,您没有运行npm start,而是仅运行 node 并将server.js文件作为第一个参数传递(这将运行该文件)。
最有可能的是,您的start脚本中需要某些内容才能正确运行日志记录。要解决此问题,您可以:
init.d脚本中,cwd转到项目根目录,然后运行npm start.package.json,看看您的脚本还在做什么start,并将等效内容添加到您的init.d脚本中。