在 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 的调试日志记录的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用默认的 asp net core config change watcher?

ASP.NET Core 为特定控制器禁用 CORS

如何在 Visual Studio 2017 Web Proj ASP.NET Core 2.0 中禁用 Https

如何在 ASP.NET Core(.NET 6、VS 2022)中禁用浏览器链接

如何在 ASP.NET Core 生产服务器上禁用“尝试重新连接到服务器”消息

如何在 ASP.NET Core 生产服务器上禁用“尝试重新连接到服务器”消息