如何在ASP.NET Core应用中禁用Quartz.Net的Debug级别日志
核心原因
你在Logging节点配置的日志级别是ASP.NET Core内置日志框架的规则,如果你使用Serilog作为日志输出组件,且没有做配置打通,Serilog不会读取该节点的规则,因此Quartz的日志级别限制不生效。
解决方案
根据你的Serilog配置方式选择对应操作即可:
情况1:代码硬编码配置Serilog
直接在Serilog构造逻辑中新增Quartz命名空间的级别覆盖规则:
Log.Logger = new LoggerConfiguration() // 你的原有配置 .MinimumLevel.Override("Quartz", Serilog.Events.LogEventLevel.Warning) // 你的原有配置 .CreateLogger();
情况2:从appsettings.json读取Serilog配置
你需要在Serilog专属配置节点下添加覆盖规则,而非默认的Logging节点,示例配置如下:
"Serilog": { "MinimumLevel": { "Default": "Information", "Override": { "System": "Warning", "Microsoft": "Warning", "Quartz": "Warning" } }, // 其余Serilog原有配置,比如WriteTo、Enrich等节点保持不变 }
校验项
如果修改后仍有Debug日志输出,可检查:
- 确认你已安装
Serilog.AspNetCore包,且在Program.cs中用UseSerilog()完成了Serilog和ASP.NET Core日志体系的集成 - 不要为Quartz单独配置独立的日志工厂,保持默认使用依赖注入的日志实现即可
内容的提问来源于stack exchange,提问作者pantonis
相关产品推荐
相关产品推荐

