我使用Raspbian Jessie OS在Raspberry Pi 2上运行了一个物联网项目.
它是在NodeJS(v4)中运行的Web服务器,我正在使用Winston登录Loggly的日志记录服务.当项目通过从终端开始的npm(当作为’pi’或通过sudo -s运行)开始时,一切正常.但是,当项目启动时,日志记录不起作用,我无法解决原因.
要在启动时启动项目,我创建了一个etc / init.d脚本.该项目启动并为交通提供服务,除了伐木以外,一切都很好.我看不到任何错误(虽然没有记录没有帮助).这是我从etc / init.d脚本中启动项目的方法:
/usr/bin/node /var/www/curtains/server.js
我正在使用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: "
最佳答案
当您运行npm start时,node将在package.json文件中查找脚本对象,并运行与start键关联的命令.
在init.d脚本中,您没有运行npm start,而只是运行节点并将您的server.js文件作为第一个参数传递(将运行该文件).
最有可能的是,您需要在启动脚本中使用某些内容才能正确运行日志记录.要解决此问题,您可以:
>在你的init.d脚本中,cwd到你的项目root,然后运行npm start.
>查看package.json以查看启动脚本正在执行的操作,并添加等效的init.d脚本.