WinstonJS 自定义级别

WinstonJS custom levels

所以我想为我的记录器添加两个级别。但它没有记录,我不知道为什么..这是我的设置。有什么想法吗?

// setup
var logLevels = {
    levels: {
        trace: 0,
        debug: 1,
        info: 2,
        warn: 3,
        error: 4,
        critical: 5
    }
};

var logger = new (winston.Logger)({
    levels: logLevels.levels,
    transports: [
        new winston.transports.Console()
    ]
});

// test
console.info('----------------------');
logger.trace('trace');
logger.debug('debug');
logger.info('info');
logger.warn('warn');
logger.error('error');
logger.critical('critical');
console.info('----------------------');

输出:

----------------------
debug: debug
trace: trace
info: info
----------------------

winston Logging levels

这里的第一个问题,每个级别都有一个特定的整数优先级。默认情况下,它的

{ error: 0, warn: 1, info: 2, verbose: 3, debug: 4, silly: 5 }

所以少即是多。

其次,您必须为每个传输指定 level。在您的情况下,您必须将级别设置为严重才能显示所有消息。

winston allows you to define a level property on each transport which specifies the maximum level of messages that a transport should log.

var logger = new (winston.Logger)({
    levels: logLevels.levels,
    transports: [
        new winston.transports.Console({level: 'critical'})
    ]
});