javascript - 将日志输出到 /var/log/syslog
问题描述
我们的遗留系统在没有任何调整的情况下输出到/var/log/syslog
with模块。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
轻松设置输出日志。
我认为最好的方法是更改目标文件,如果您没有更好的方法,只需告诉我“更改目标文件”即可。
解决方案
考虑到 /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));