首页 > 解决方案 > 以后有什么方法可以在下游类中读取 Serilog 的 LogContext 吗?

问题描述

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

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

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

标签: c#.net-coreserilog

解决方案


Serilog 不提供您从LogContext.

通常情况下,PushProperty存储它,并Enrich.FromLogContext负责获取将伴随解构消息和令牌的上下文信息,因为日志记录调用将它们捕获LogEvent然后传递到sinks链中。

这真的引出了一个问题:你为什么觉得你需要这样做


实际上回答了这个问题:尽管底层 API 可能以可用的方式公开;我会去https://github.com/serilog/serilog - LogContextimpl 和测试都在那个核心 repo 中。


推荐阅读