我有一个依赖于Express的节点API,该API即将投入生产。为了能够修复错误,我想在记录错误时自动记录请求的上下文。我希望它是自动的,所以我敢肯定我不会忘记自己在代码中的某个地方做它。
此刻,我正在使用中间件生成唯一的请求ID,并通过将请求对象传递给记录器来记录请求信息,如下所示:
// handle error that occurs somewhere in the code
.catch((err) => {
winston.error(err, req);
});
这就是我想要的:
// handle error that occurs somewhere in the code
.catch((err) => {
winston.error(err);
});
以及日志中应包含的内容
{
message: 'something went wrong',
context: { // <-- I want this property to be added automatically
requestId: 'ab9bc67',
params: {
foo: 'bar'
},
body: {}
}
}
谢谢