2013-05-07 97 views
7

winston處理未捕獲的異常時,它會輸出未捕獲的異常的一個很好的信息。我如何對「捕獲的異常」執行相同的操作?如何記錄「catched」異常?

if (err) { 
// winston. log the catched exception 
} 

我檢查了源和似乎有一個logException method,但我不知道我怎麼能使用它。

var logger = new winston.Logger({ 
    transports: [new winston.transports.Console({handleExceptions: true})] 
}) 
var err = new Error('test error.') 
logger.logException(err.message) //no method 'logException' 

回答

0

logException不是Logger類的Transport的方法,。你需要的是一個error方法:

var winston = require('winston'); 
var logger = new winston.Logger({ 
    transports: [new winston.transports.Console({handleExceptions: true})] 
}) 
var err = new Error('test error.'); 
logger.error(err.message); 

https://github.com/flatiron/winston#using-logging-levels

1

可以發出逮住例外回過程中,錯誤將被winston.Logger被逮住。例如:

process.emit('uncaughtException', err); 
1
var winston = require('winston'); 
var err = new Error('test error.'); 
winston.error(winston.exception.getAllInfo(err)); 
+0

也許這是從舊版本溫斯頓的,但目前還沒有這樣的API。 https://github.com/winstonjs/winston – Seth 2017-03-09 12:30:46