使用 hapi 将 request.url 附加到正在记录的任何错误

Attach request.url to any errors being logged, using hapi

我正在尝试将请求的路径添加到 NodeJS 记录的所有(或大多数,有意义的)服务器错误,想法是在查看日志时(在此处插入选择的工具)我会能够直接将 NodeJS 错误关联到 request.url.

我一直在阅读 hapi 的文档,但我还没有偶然发现执行此操作的方法,部分原因是我仍在思考 request/response 生命周期和最好的地方插入这个逻辑。我通过将 request.url 添加为 error.url 在我的基本控制器 class 中尝试了一些东西,但似乎没有得到我希望的结果。我想我需要的是一个错误事件处理程序来附加这个额外的错误 属性,类似于 restify 的 server.on('restifyError'),hapi 中有类似的东西吗?

在 hapi 文档中,它显示了您可以收听的各种事件,就像您喜欢 Restify 示例一样。如果您看到此 link,它会显示您可以收听的事件的名称。

我已经得到以下方法来做我想做的事,尽管到目前为止它似乎只对 500 个错误有效。

server.on('request-error', function (request, err) {
  console.log('Error response (500) sent for request: ' +
    request.id + ', at: ' + request.url.path + ', because: ' +
    (err.trace || err.stack || err));
});