Serilog:如何在配置文件中指定过滤器表达式

我试图在appsettings .json文件中指定此过滤器

.Filter.ByExcluding(Matching.FromSource("Microsoft.AspNetCore.Hosting.Internal.WebHost"))

在c#中指定时,上述语法有效

但是尝试在json文件中指定相同的方法不起作用.

"Filter": [
{
"Name": "ByExcluding",
"Args": {
"expression": "Matching.FromSource = 'Microsoft.AspNetCore.Hosting.Internal.WebHost'"
}
}

最佳答案 您需要使用 Serilog.Filters.Expressions:

Install-Package Serilog.Filters.Expressions

appsettings.json中的过滤器部分如下所示:

"Filter": [
  {
    "Name": "ByExcluding",
    "Args": {
      "expression": "SourceContext = 'Microsoft.AspNetCore.Hosting.Internal.WebHost'"
    }
  }
],

在这种特定情况下,我建议将level overrides作为替代方案,以更有效地关闭特定命名空间.

点赞