我们的旧系统使用 posix
模块输出到 /var/log/syslog
,无需任何调整。但是这个 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
中。
我认为最好的方法是更改目标文件,如果您没有更好的方法,请告诉我“更改目标文件”。
最佳答案
考虑到/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));
关于javascript - 输出日志到/var/log/syslog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56355783/