首页 > 解决方案 > 在 ASP.NET Core 应用程序中禁用 Quartz.Net 的调试日志记录

问题描述

将 Quartz.Net 3.1.3 与使用 Serilog 的 ASP.NET Core 应用程序一起使用,我正在尝试禁用 Quartz 的调试日志记录,因为它会在生产环境中发送垃圾邮件。

我在以下设置appsettings.json

"Logging": {
    "LogLevel": {
      "System": "Warning",
      "Microsoft": "Warning",
      "MyCompanyNameSpace": "Information",
      "Quartz": "Warning"
    }
},

但我仍然可以看到正在记录:

2021-11-02 09:49:34.025 +02:00 [DBG] Calling Execute on job MyCompany.SyncJobGroup.SyncJobA
2021-11-02 09:49:34.154 +02:00 [DBG] Trigger instruction : DeleteTrigger
2021-11-02 09:49:34.154 +02:00 [DBG] Deleting trigger

我怎样才能禁用它?

标签: c#asp.net-core.net-corequartz.net

解决方案


解决方案有两个部分:

1. appsettings.json 中缺少以下 Serilog 配置,以定义 Quartz 的正确日志记录级别:

https://groups.google.com/forum/#!topic/quartznet/Cjco_Ob9yrM

"MinimumLevel": {
  "Default": "Debug",
  "Override": {
    "Microsoft": "Warning",
    "System": "Warning",
    "Quartz": "Warning"
  }
},

“Quartz”的配置:“Warning”禁止记录调试“批量获取”消息。

2 - 完全不需要调用 SerilogLogger.Reconfigure 和 SerilogLogger.RefineConfiguration 方法。我删除了这个。它正在覆盖上面第 1) 点的配置。所有 Serilog 配置都应该在我的 appsettings 中进行。


推荐阅读