2013-05-07 17 views
7

Quando winston gestisce le eccezioni non rilevate, stampa una bella informazione dell'eccezione non rilevata. Come posso fare lo stesso su "eccezioni intercettate"?Come registrare le eccezioni "catched"?

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

ho controllato la fonte e sembra che ci sia un logException method, ma non so come avrei potuto usarlo.

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' 

risposta

0

logException è un metodo di Transport, non di classe Logger. Quello che vi serve è un metodo 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

È possibile emettere eccezione catturato di nuovo a processo, errore venire catturato dai winston.Logger. Esempio:

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

Forse questo è da una vecchia versione di Winston, ma non v'è tale API. https://github.com/winstonjs/winston – Seth

Problemi correlati