输出日志到/ var / log / syslog

时间:2019-05-29 08:05:02

标签: javascript node.js logging

我们的旧系统正在使用/var/log/syslog模块输出到posix,而没有进行任何调整。但是此posix软件包在Node.js v10中不再可用,我们不得不采用其他日志记录模块。

我们现在正尝试使用winston模块代替它,我们的设置如下所示。

this.logger = winston.createLogger({
  levels: winston.config.syslog.levels,
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({
      filename: '/var/log/syslog'
    })
  ]
});

但是我们无法在/var/log/syslog中获取任何日志,可能是由于权限问题所致。 有没有人对此有最好的解决方案? 我们想做的是通过简单的设置将日志输出到/var/log/syslog中。

我认为最好的方法是更改​​目标文件,如果您没有更好的方法,只需告诉我“更改目标文件”即可。

2 个答案:

答案 0 :(得分:1)

考虑到/ var / log / syslog是由系统实用程序管理的,您很可能确实存在权限问题。

无论如何,最快的解决方案是使用npm软件包winston-syslog,如果您查看文档,则很容易配置

const winston = require('winston');

//
// Requiring `winston-syslog` will expose
// `winston.transports.Syslog`
//
require('winston-syslog').Syslog;

winston.add(new winston.transports.Syslog(options));

答案 1 :(得分:0)

实际上,您可以将日志输出到控制台,并将stdout和stderr流重定向到文件