在 ASP.NET Core 应用程序中禁用 Quartz.Net 的调试日志记录

Posted

技术标签:

【中文标题】在 ASP.NET Core 应用程序中禁用 Quartz.Net 的调试日志记录【英文标题】:Disable debug logging of Quartz.Net in an ASP.NET Core app 【发布时间】:2021-12-16 18:35:41 【问题描述】:

将 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

如何禁用它?

【问题讨论】:

你可以在这里看到一个相同的具体案例:***.com/questions/877217/… @T.Nielsen 这篇文章与 ASP.NET Core 无关 【参考方案1】:

解决方案分为两部分:

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”禁止记录 Debug“批量获取”消息。

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

【讨论】:

以上是关于在 ASP.NET Core 应用程序中禁用 Quartz.Net 的调试日志记录的主要内容,如果未能解决你的问题,请参考以下文章