You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:13:01