使用Serilog时如何禁用ASP.NET的控制台日志输出?
如何让ASP.NET完全静默,阻止指定日志输出
你当前的Serilog配置没有精准覆盖目标日志源的级别,导致那些info级别的JwtBearer和请求结束日志仍然输出。可以通过以下方式解决:
修改Serilog配置(appsettings.json)
在MinimumLevel.Override中添加具体的日志源,将其级别设为None,彻底禁止该源的所有日志输出:
"Serilog": { "MinimumLevel": { "Default": "Verbose", "Microsoft": "Error", "Override": { "Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler": "None", "Microsoft.AspNetCore.Hosting.Diagnostics": "None", "Microsoft": "Error" } }, "WriteTo": [ { "Name": "Console", "outputTemplate": "{Timestamp:G}[{Level:u3}] ** {Message} ** ({SourceContext}) {NewLine:1}{Exception:1}" } ] }
关键说明
None是Serilog的最高过滤级别,设置后该日志源的所有日志都会被彻底屏蔽。- 配置中的
SourceContext必须和日志行里的标识完全匹配(即你提供的日志里info:后面的组件名称)。
确认Serilog加载配置
确保在Program.cs中正确让Serilog读取配置文件:
var builder = WebApplication.CreateBuilder(args); // 加载Serilog配置 builder.Host.UseSerilog((context, config) => config.ReadFrom.Configuration(context.Configuration)); // 后续中间件配置...
内容的提问来源于stack exchange,提问作者user5405648
相关产品推荐
相关产品推荐

