2015-12-02 68 views
1

所以我想添加两个级别到我的记录器。但它不记录,我不知道为什么。这是我的设置。有任何想法吗?WinstonJS自定义级别

// 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 
---------------------- 
+0

这也是奇怪,它被之后的第二印刷'了'trace'线 – yarons

+0

@yarons有时前'debug'线是印-------------- --------' – Brettetete

回答

1

winston Logging levels

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

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

所以越少越重要。

其次,您必须为每个传输指定level。在你的情况下,你必须将级别设置为关键以显示所有消息。

winston允许您在每个传输器上定义一个级别属性,该属性指定传输器应该记录的最大消息级别。

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