如何为 server.ext('onRequest', ...) 中的所有 Hapi 日志添加标签
How to add a tag to all Hapi logs in server.ext('onRequest', ...)
这个问题显然有一个假设,即这必须发生在 server.ext('onRequest', ...)
- 事实并非如此,因此可能发生在其他地方。
我的具体用例是负载测试器正在调用我的服务。该负载测试器提供了一个特定的 HTTP header 允许我识别它。当此 header 存在时,我想向所有日志添加特定标签。
虽然请求 object 或请求 object 中的日志 属性 中会有一些东西,但我可以向其附加一个标签应用于该请求的所有日志。找不到任何东西。
Hapi版本:@hapi/hapi18.3.2
要将我放入 hapihour 的内容放在这里:
您可以根据请求覆盖服务器扩展中的 hapi 内部日志功能,以强制它使用以下代码添加您的自定义标签:
server.ext({
type: 'onRequest',
method: function (request, h) {
const oldLogFxn = request._log;
const newLogFxn = (tags, data, channel) => oldLogFxn(['CUSTOM_TAG', ...tags], data, channel);
request._log = newLogFxn.bind(request);
}
});
这个问题显然有一个假设,即这必须发生在 server.ext('onRequest', ...)
- 事实并非如此,因此可能发生在其他地方。
我的具体用例是负载测试器正在调用我的服务。该负载测试器提供了一个特定的 HTTP header 允许我识别它。当此 header 存在时,我想向所有日志添加特定标签。
虽然请求 object 或请求 object 中的日志 属性 中会有一些东西,但我可以向其附加一个标签应用于该请求的所有日志。找不到任何东西。
Hapi版本:@hapi/hapi18.3.2
要将我放入 hapihour 的内容放在这里:
您可以根据请求覆盖服务器扩展中的 hapi 内部日志功能,以强制它使用以下代码添加您的自定义标签:
server.ext({
type: 'onRequest',
method: function (request, h) {
const oldLogFxn = request._log;
const newLogFxn = (tags, data, channel) => oldLogFxn(['CUSTOM_TAG', ...tags], data, channel);
request._log = newLogFxn.bind(request);
}
});