2015-12-02 47 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'}) 
    ] 
});