在 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?
如何在 Visual Studio 2017 Web Proj ASP.NET Core 2.0 中禁用 Https
如何在 ASP.NET Core(.NET 6、VS 2022)中禁用浏览器链接