以编程方式从 Serilog 获取相关 ID 的值

Getting the value of correlation Id from Serilog programatically

我正在使用 Serilog 登录我的 Web API 项目,安装了 Web 经典 nuget 包后,我可以简单地为每个请求记录一个唯一的 GUID 值。 从我的 Logger 是否可以访问该值?我知道任何时候我写入一个文件都应该写入它,但我想从记录器上下文中读取它,无论如何都可以这样做吗?

没有 supported/straightforward 的方法(可能有一些 hack,你需要阅读 SerilogWeb.Classic 包的源代码来计算然而这个出来了)。

如果您将 ILogEventEnricher 添加到管道,它可以检查请求期间发出的 LogEvent 并在那时检索 HttpRequestId - 虽然我不确定这是否在您的场景中很有用。