如何抑制ASP.NET Core Blazor项目dotnet run的DBG/INF日志消息?
解决ASP.NET Core 8 Blazor中dotnet run日志过多的问题
核心原因
dotnet run -v q控制的是构建阶段的输出冗余度,和运行时组件的日志级别无关,所以对ABP、Quartz.NET这类组件的运行时日志无效,必须通过ASP.NET Core的日志配置来调整。
具体配置方案
1. 修改日志配置文件
编辑项目根目录下的appsettings.json(或仅针对开发环境修改appsettings.Development.json),调整Logging节点的配置:
{ "Logging": { "LogLevel": { "Default": "Warning", "Microsoft.AspNetCore": "Warning", "Microsoft.Hosting.Lifetime": "Information", // 保留服务器就绪的关键日志 "Volo.Abp": "Warning", // 过滤ABP的Info/Debug级冗余日志 "Quartz": "Error" // 仅保留Quartz的错误日志 } } }
配置说明:
Microsoft.Hosting.Lifetime设为Information,会保留Now listening on: http://localhost:5000这类服务器启动就绪的关键提示Volo.Abp设为Warning,屏蔽ABP的普通信息和调试日志Quartz设为Error,只输出Quartz运行时的错误信息,正常运行日志全部抑制
2. 验证效果
修改完成后执行dotnet run,只会输出:
- 服务器启动就绪的关键信息
- 各组件的Error级别日志
- 其他被设为Warning及以上级别的必要日志
3. 扩展调整(可选)
如果还有其他组件日志冗余,只需在LogLevel节点下添加对应组件的命名空间,设置合适的日志级别即可(比如自定义组件命名空间设为Warning)。
内容的提问来源于stack exchange,提问作者Kenny83
相关产品推荐
相关产品推荐

