如何处理(即logging)调整中的错误

在我们的restify应用程序中,当我们传递一个错误到next ,返回一个通用的500错误,这一切都很好。 不过,我还需要在某处logging错误的详细信息,以便我知道发生了什么事情。

以前,我在一个快速应用程序上工作,而且一个集中的error handling中间件使我们能够在接收到错误时执行任意代码,例如日志logging。

集中logging错误细节的“调整方式”是什么? 我不想在整个应用程序中散布日志logging。

一旦所有其他路由处理程序完成请求,Restify服务器对象就会发出'after'事件。 你可以把你的日志代码放在'after'事件处理器中:

 var svr = restify.createServer() .get('/hello-world', hello_world_hndlr) .on('after', function (req, resp, route, err) { // logging here }) .listen(SVR_PORT) 

'after'的另一种方法是听'restifyError'

 server.on('restifyError', (req, res, err, cb) => { req.log.error(err) return cb(); }); 

我不知道为什么这个没有logging在别处。