Asp.net core 如何获取当前Serilog最小级别

Asp.net core 如何获取当前Serilog最小级别,asp.net-core,serilog,Asp.net Core,Serilog,有没有办法从控制器或中间件中Serilog的当前配置中获取最低日志级别?虽然这有点间接,但您可以使用IsEnabled逐级检查此级别: Log.IsEnabled(LogEventLevel.Debug) 对于这类场景,这通常就足够了。如果您真的需要精确的最低级别,您可以单独尝试各种LogEventLevel成员来找出它IsEnabled()速度非常快,因此以这种方式检查一些级别不会出现在性能雷达上 请记住,每个源上下文仍然可以覆盖最低级别(即使用MinimumLevel.Override()

有没有办法从控制器或中间件中Serilog的当前配置中获取最低日志级别?

虽然这有点间接,但您可以使用
IsEnabled
逐级检查此级别:

Log.IsEnabled(LogEventLevel.Debug)
对于这类场景,这通常就足够了。如果您真的需要精确的最低级别,您可以单独尝试各种
LogEventLevel
成员来找出它
IsEnabled()
速度非常快,因此以这种方式检查一些级别不会出现在性能雷达上


请记住,每个源上下文仍然可以覆盖最低级别(即使用
MinimumLevel.Override()
)。

可能
Enum.GetValues(typeof(LogEventLevel)).Cast()。其中(Log.IsEnabled).Min()
?虽然我猜自定义循环可能会短路。您想从
appsettings.json
Serilog.log.Logger
对象获取最低日志级别吗?对于上一步,您可以将配置绑定到
IOptions
,请参阅[AppSettings.json中Serilog Sinks MsSqlServer的配置列选项]()