【发布时间】:2018-09-13 04:56:26
【问题描述】:
我们正在寻找一种跨多个 API 请求 HOOK Request-Id(或 Correlation-Id)的方法,如下图所示:
我们的想法是通过我们的日志中的多个 API 使用一个 id 来跟踪特定请求。我们使用 .NET Core 2.1 开箱即用的标准 ILogger。
到目前为止我们所做的尝试
我们已尝试在请求标头中使用
Request-Id,它成功记录了日志,但我们无法检索该值以将其添加到后续对其他 API 的 HTTP 请求中。我们注意到还有一个
CorrelationId被记录。但是,我们无法弄清楚如何更新它。另外,我们注意到
HttpContextAccessor上有可用的TraceIdentity,这可能会解决我们的目的。但是,我们不知道如何利用它来解决我们的问题。
我们无法使用 Application Insights,而是希望依赖我们自己的日志记录基础架构框架。我们在文档中找不到太多内容。
是否有任何现成的解决方案可供我们使用,而无需提出我们自己的自定义解决方案?
【问题讨论】:
-
为什么不能检索 Request-Id 标头的值?如果传入请求设置了标头 Request-Id,asp.net 核心将其值用作日志消息中的 CorrelationId。这是自动完成的。
-
记录的 requestId 是 TraceIdentifier
-
您好@Jehof 如前所述,我们无法找到在后续请求中检索
request-id的方法。您能否指导我们使用示例代码来实现这一目标?
标签: c# logging .net-core asp.net-core-2.1