如何logging“catched”exception?

当winston处理未捕获的exception时,它会打印出未捕获的exception的一个很好的信息。我怎样才能对“捕获的exception”执行相同的操作?

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

我检查了源代码,似乎有一个logException方法,但我不知道如何使用它。

 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' 

 var winston = require('winston'); var err = new Error('test error.'); winston.error(winston.exception.getAllInfo(err)); 

logExceptionTransport一种方法,而不是Logger类的方法。 你需要的是一个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

你可以发送catchedexception回来处理,错误将由winston.Logger捕获。 例:

 process.emit('uncaughtException', err);