簡體   English   中英

NodeJS - 在 OSX 上將 Winston 登錄到系統日志

[英]NodeJS - Logging Winston out to syslog on OSX

幾天來,我一直試圖讓我的 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進程下看到我的 OSX 控制台應用程序中記錄的任何內容。

另一方面,我可以手動運行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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM