我有一个用Node.js / Hapi编写的REST API,我正在努力为它添加日志记录并将其集成到像Splunk这样的集中式日志服务中。
我希望能够做的是编写一个简单的日志工具,这样代码中的任何地方都可以执行以下操作:
LoggingUtil.log('some message');
并且LoggingUtil将能够确定它所属的请求,并将其包含在记录的实际消息中。这样,当我搜索日志时,请求ID将把与特定请求相关的所有日志绑定在一起。
我不太熟悉Node中的事件循环以及如何实现这一点。我发现可能有用的唯一事情是tick-id
答案 0 :(得分:-1)
我不确定你的意思,但我根据你是想要一直记录还是只是为了调试来提出2条建议。
使用Hapi的生命周期方法
记录所有时间示例server.ext('onRequest', (request, reply) => {
console.log(`\n++++++ ${request.raw.req.method} ${request.raw.req.url} ++++++\n`);
reply.continue();
});
onRequest表示每次有请求时,都会调用此函数。对于我,我让它记录了请求方法和URL。你可以观察请求对象以获得你想要的信息。
基本相同的逻辑,传递请求对象并从那里访问您需要的信息。
在你的日志功能中:
log(request) {
console.log(WHATEVER_YOU_NEED)
}