2015-04-16 439 views
0

據我瞭解,溫斯頓在日誌級別上有一個層次結構。您可以使用winston.level = 'error'設置級別,並且不應顯示以下所有級別。不幸的是,我仍然得到了我的控制檯中顯示的信息和調試日誌。溫斯頓日誌級別/隱藏日誌級別

問題1):

如何真正建立溫斯頓告訴我只有日誌級別

問題2)爲什麼調試反正控制檯中顯示

,我配置它顯示在一個日誌文件(它另外做什麼)

winston = require('winston') 
winston.emitErrs = true 
logger = new winston.Logger({ 
    transports: [ 
    new winston.transports.File({ 
     level: 'info' 
     filename: 'logs/log.log' 
     handleExceptions: true 
     json: true 
     maxsize: 5242880 #5MB 
     maxFiles: 5 
     colorize: false 
     timestamp: true 
    }), 
    new winston.transports.Console({ 
     level: 'debug' 
     handleExceptions: true 
     json: false 
     colorize: true 
    }) 
    ], 
    exitOnError: false 
}) 
winston.level = 'error' 

module.exports = logger 
module.exports.stream = { 
    write: (message, encoding) -> 
    logger.info(message) 
} 

代碼基本上是從這個嘖嘖: http://tostring.it/2014/06/23/advanced-logging-with-nodejs/

回答

0

現在我明白了。它將所有內容記錄到定義的傳輸中的日誌級別。所以我猜這是不可能的,只是調試控制檯和信息到日誌而不操作順序。

控制檯這不記錄調試:

new winston.transports.Console({ 
    level: 'info' 
    handleExceptions: true 
    json: false 
    colorize: true 
}) 

我的第一個假設是,我可以爲每個日誌級別指定傳輸,然後再決定我是多麼日誌想有: winston.setLevels(winston.config.syslog.levels)

eg 錯誤mongoDb info到log.log文件 調試到控制檯