gpt4 book ai didi

linux - Loggly 无法通过 Pi 上的 Winston 工作

转载 作者:IT王子 更新时间:2023-10-29 00:35:29 28 4
gpt4 key购买 nike

我有一个物联网项目在使用 Raspbian Jessie 操作系统的 Raspberry Pi 2 上运行。

这是一个在 NodeJS (v4) 中运行的网络服务器,我使用 Winston 登录到 Loggly 的日志服务。当项目从终端通过 npm start 启动时(以“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: "<snip>",
subdomain: "<snip>",
tags: ["tag", ip.address()],
json:true
});

winston.log('info',"Server.js starting up");

最佳答案

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

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

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

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

关于linux - Loggly 无法通过 Pi 上的 Winston 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35372608/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com