在Serilog中设置MinimumLevel:是否可以对命名空间使用通配符/正则表达式?

问题描述 投票:0回答:2

在 Serilog 中设置最小级别:是否可以在命名空间中使用通配符/正则表达式?

假设我有自己的命名空间,大小写不同,需要两者都登录信息。

  • 我的名字空间
  • 我的名字空间

可以通过这样的配置来完成吗?

"SeriLog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Default": "Warning",
        "MyNameSpace|MYNameSpace": "Information"
      }
    }
  }

或者只有同时指定两者才可能实现?

"SeriLog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Default": "Warning",
        "MyNameSpace": "Information",
        "MYNameSpace": "Information"
      }
    }
  }
regex overriding wildcard serilog log-level
2个回答
2
投票
截至撰写本文时,最低级别覆盖功能

支持通配符/正则表达式。它仅支持简单(区分大小写)的部分匹配。 您可以在源代码中查看它是如何工作的

将两个不同的命名空间声明为第二个示例是正确的方法。


0
投票
您还可以使用 Serilog.Expressions 排除一些日志条目

https://github.com/serilog/serilog/issues/1786#issuecomment-1487933383

即设置

System.Net.Http.HttpClient

 的最低级别以允许信息,但使用 
Filter.ByExcluding(...)
 和例如排除 
SourceContext like 'System.Net.Http.HttpClient.%.LogicalHandler'
 的表达式。

© www.soinside.com 2019 - 2024. All rights reserved.