Nodejs-将Winston登录到OSX上的Syslog



我一直在尝试将我的nodejs应用程序记录到syslog几天,但没有明显的成功:

const winston = require('winston');
require('winston-syslog').Syslog; // eslint-disable-line
const env = process.env.NODE_ENV;
let syslogConfig = {
    "host": "localhost",
    "port": 514,
    "protocol": "unix",
    "path": "/var/run/syslog"
};
const logger = new winston.Logger({
    levels: winston.config.syslog.levels,
    colors: winston.config.syslog.colors
});
logger.add(winston.transports.Syslog, syslogConfig);
logger.add(winston.transports.Console, {
    json: false,
    colorize: true,
    timestamp: true
});
logger.error('Hello, world!');
module.exports = logger;

当该代码运行时,我在终端中没有错误(它可以编译好的,我在终端输出中看到了" Hello,World!"),但是我从未在syslog Process下看到OSX Console应用程序记录任何内容。/p>

另一方面,我可以在终端中手动运行syslog -s -l ERROR “Hello, world.”,并在控制台应用中显示。

我在这里很困难 - 我正在运行OSX Sierra(10.12.6)

距离此消息已经好几年了。我终于有些工作了,所以我认为应该分享:

const winston = require('winston')
require('winston-syslog').Syslog
// Logger creation
const logger = winston.createLogger({
  levels: winston.config.syslog.levels,
})
// Console feedback
logger.add(
  new winston.transports.Console({
    name: 'consoleLogs'
  })
)
// Sending to syslog
logger.add(
  new winston.transports.Syslog({
    protocol: 'unix',
    path: '/var/run/syslog'
  })
)
// Test message
logger.alert('Hello world!!')

我可以看到消息/var/log/system.log

最新更新