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

kol*_*uri 8 serilog

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

.Filter.ByExcluding(Matching.FromSource("Microsoft.AspNetCore.Hosting.Internal.WebHost"))
Run Code Online (Sandbox Code Playgroud)

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

但是试图在 json 文件中指定相同的内容是行不通的。

"Filter": [
{
"Name": "ByExcluding",
"Args": {
"expression": "Matching.FromSource = 'Microsoft.AspNetCore.Hosting.Internal.WebHost'"
}
}
Run Code Online (Sandbox Code Playgroud)

Nic*_*rdt 6

您需要为此使用Serilog.Expressions

Install-Package Serilog.Expressions
Run Code Online (Sandbox Code Playgroud)

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

"Filter": [
  {
    "Name": "ByExcluding",
    "Args": {
      "expression": "SourceContext = 'Microsoft.AspNetCore.Hosting.Internal.WebHost'"
    }
  }
],
Run Code Online (Sandbox Code Playgroud)

在这种特定情况下,我建议考虑将级别覆盖作为更有效地关闭特定命名空间的替代方法。