我们的旧系统正在使用/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
中。
我认为最好的方法是更改目标文件,如果您没有更好的方法,只需告诉我“更改目标文件”即可。
答案 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流重定向到文件