以后在下游类中读取Serilog的LogContext有什么方法吗?

时间:2019-10-04 01:25:02

标签: c# .net-core serilog

我正在.NET Core Web应用程序的中间件类中将值推送到Serilog LogContext:-

using LogContext.PushProperty("MyAct", "some clever joke") ...

是否可以在下游类中读取MyAct属性的值?我在LogContext类上看不到任何有希望的东西-看起来像是只写实体,但也许我遗漏了一些东西?

1 个答案:

答案 0 :(得分:1)

Serilog不提供您仅读取LogContext中的值。

通常PushProperty会将其存储,Enrich.FromLogContext则负责获取上下文信息,这些信息将随日志记录调用捕获一起将它们与已分解的消息和令牌一同存储。 LogEvent,然后将其传递到接收器链。

这真的是一个问题:why do you feel you need to do this


实际回答这个问题:尽管底层API可能以可用的方式公开;我会去https://github.com/serilog/serilog-LogContext的隐含性和测试都在该核心存储库中。