【问题标题】:How to get current Serilog MinimumLevel如何获取当前的 Serilog 最低级别
【发布时间】:2018-03-12 00:19:27
【问题描述】:

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

【问题讨论】:

  • 您想从appsettings.jsonSerilog.Log.Logger 对象获取最低日志级别吗?之前可以将配置绑定到IOptions<SerilogConfiguration>,参考[Configure Column Options for Serilog Sinks MsSqlServer in AppSettings.json](stackoverflow.com/questions/48690921/…)

标签: asp.net-core serilog


【解决方案1】:

虽然有点间接,但可以使用IsEnabled逐级查看:

Log.IsEnabled(LogEventLevel.Debug)

对于这类场景,这通常就足够了。如果您确实需要精确的最低级别,您可以单独尝试各种LogEventLevel 成员以找出答案。 IsEnabled() 非常快,因此以这种方式检查几个级别不会显示在您的性能雷达上。

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

【讨论】:

  • 可能是Enum.GetValues(typeof(LogEventLevel)).Cast<LogEventLevel>().Where(Log.IsEnabled).Min()?虽然我猜自定义循环可能会短路。
猜你喜欢
  • 2019-02-02
  • 2020-07-11
  • 2018-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-15
相关资源
最近更新 更多