在 appsettings.json 中使用 Serilog,我在 sublogger 中的过滤器表达式不起作用

Using Serilog in appsettings.json, my filter expression in the sublogger is not working

我正在使用 serilog 根据命名空间将日志写入不同的文件。正在创建这两个文件,但未向 shopify.log 写入任何内容。我有两个要包含的命名空间,它们都包含字符串“Shopify”。我可以完全限定它们和模式匹配,但这也不起作用。

我正在使用 Serilog.Expressions 3.2.0

感谢任何帮助!

  "WriteTo": [
          { "Name": "Console" },
          {
            "Name": "File",
            "Args": {
              "path": "Logs/system.log"
            }
          },
          {
            "Name": "Logger",
            "Args": {
              "configureLogger": {
                "WriteTo": [
                  {
                    "Name": "File",
                    "Args": {
                      "path": "Logs/shopify.log"
                    }
                  }
                ],
                "Filter": [
                  {
                    "Name": "ByIncludingOnly",
                    "Args": {
                      "expression": "Contains(SourceContext, 'Shopify')"
                    }
                  }
                ]
              }
            }
          }
        ],

我仍然不确定为什么 'Contains' 不起作用,但我将其更改为更多查询类型的表达式并且它起作用了。

"Filter": [
          {
            "Name": "ByIncludingOnly",
            "Args": {
              "expression": "SourceContext like '%shopify%' ci"
            }
          }
        ]

'ci'表示不区分大小写,所以也匹配Shopify。