You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Serilog.Expressions 5.0.0过滤Quartz.NET重复日志?

问题解决方法

Serilog.Expressions 5.0.0对表达式语法做了调整,移除了属性名前的@前缀,同时推荐通过日志源(SourceContext)做精准过滤,既解决配置失效问题,也能提升日志处理性能。

方案1:适配新语法修改原有消息过滤

直接把原表达式里的@Message改为Message即可,修改后的Filter配置如下:

"Filter": [
  {
    "Name": "ByExcluding",
    "Args": {
      "expression": "Contains(Message, 'Batch acquisition of')"
    }
  }
]

方案2:更精准的日志源+消息过滤(推荐)

Quartz的"Batch acquisition of"日志来自Quartz.Core.QuartzSchedulerThread类,直接针对这个日志源过滤,性能更优:

"Filter": [
  {
    "Name": "ByExcluding",
    "Args": {
      "expression": "SourceContext = 'Quartz.Core.QuartzSchedulerThread' and Message contains 'Batch acquisition of'"
    }
  }
]

完整修改后的appsettings.json配置示例

{
  "Serilog": {
    "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File", "Serilog.Expressions" ],
    "MinimumLevel": {
      "Default": "Debug",
      "Override": {
        "Microsoft": "Warning",
        "System": "Warning"
      }
    },
    "Filter": [
      {
        "Name": "ByExcluding",
        "Args": {
          "expression": "SourceContext = 'Quartz.Core.QuartzSchedulerThread' and Message contains 'Batch acquisition of'"
        }
      }
    ],
    "WriteTo": [
      { "Name": "Console" },
      {
        "Name": "File",
        "Args": {
          "path": "Logs/log-.txt",
          "rollingInterval": "Day"
        }
      }
    ],
    "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ]
  }
}

内容的提问来源于stack exchange,提问作者Val

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:17:41