gpt4 book ai didi

node.js - 使用 bunyan 记录一个请求

转载 作者:搜寻专家 更新时间:2023-11-01 00:18:23 24 4
gpt4 key购买 nike

我用 node.js 和 express 构建了一个应用程序。我已经开始使用 bunyan,但我很难理解热记录请求。

假设我的路由器调用这样的函数:

function(request, someOtherStuff, done){\\do something}

其中 request 是从 POST 请求生成的,并且在 request.body 中有一些东西。

我想执行以下操作:当函数内部发生错误时,我想记录错误以及来自用户的请求(包括 req.body)。像这样的东西:

if(err) {
bunyan.error(err,request);
done(err);
}

我知道我可以在 bunyan 配置中使用 serializers: {req: reqSerializer},但我找不到任何实际记录请求的示例。

非常感谢任何建议

最佳答案

我实现的方式是在 app.js 中添加一个处理程序,如下所示:

app.use(function(req, res, next){
log.info(reqSerializer(req));
next();
});

reqSerializer 函数然后包含您想要返回的内容,例如

function reqSerializer(req) {
return {
method: req.method,
url: req.url,
headers: req.headers,
somethingCustom: ...,
}
}

还要确保在初始化记录器时包含 reqSerializer,例如

var log = bunyan.createLogger({
name: 'myapp',
serializers: {
req: reqSerializer
},
}

所以序列化器所做的只是序列化 req 对象,您仍然需要实际将它传递给记录器以记录它。

关于node.js - 使用 bunyan 记录一个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24373298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com