.NET7中Serilog.Sinks.Console Formatter配置不生效问题求助
Serilog控制台Formatter配置不生效问题解决
问题原因
你在appsettings.json中同时配置了formatter和outputTemplate参数,这两者是互斥的:
formatter用于指定自定义日志格式化器(如JsonFormatter)outputTemplate是默认文本格式化器的专属配置参数
当两者同时存在时,Serilog控制台接收器会优先使用outputTemplate创建文本格式化器,导致你配置的JsonFormatter被覆盖,无法生效。
解决方案
删除配置中的outputTemplate字段,仅保留formatter配置即可:
修改后的appsettings.json:
{ "Serilog": { "WriteTo": [ { "Name": "Console", "Args": { "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog" } } ] } }
验证
修改配置后重新运行程序,日志输出将切换为JSON格式,与你通过代码直接配置JsonFormatter的效果一致。
你的NuGet包版本均兼容.NET7,无需额外调整版本。
内容的提问来源于stack exchange,提问作者WENJUN CHI
相关产品推荐
相关产品推荐

