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

如何通过Serilog JSON配置实现Debug日志仅输出到输出窗口?

实现方案

可以实现,完全通过JSON配置就能达成需求。基于你的现有配置,只需对Debug接收器添加级别限制,确保它仅处理Debug级日志;你的Console接收器已经配置了restrictedToMinimumLevel: "Information",这部分不需要修改,它会自动忽略Debug级日志。

修改后的完整配置

{
  "Serilog": {
    "MinimumLevel": {
      "Default": "Debug",
      "Override": {
        "Microsoft": "Warning",
        "Microsoft.Hosting": "Information",
        "System": "Warning",
        "Serilog.AspNetCore": "Warning"
      }
    },
    "Filter": [],
    "WriteTo": [
      {
        "Name": "Debug",
        "Args": {
          "outputTemplate": "{Timestamp:HH:mm:ss.fff} [{ProcessId}:{ThreadId,-2}] [{Level:u3}] [{SourceContext}] {Message:lj}{NewLine}{Exception}",
          "restrictedToMinimumLevel": "Debug",
          "restrictedToMaximumLevel": "Debug"
        }
      },
      {
        "Name": "Console",
        "Args": {
          "restrictedToMinimumLevel": "Information",
          "outputTemplate": "{Timestamp:HH:mm:ss.fff} [{ProcessId}:{ThreadId,-2}] [{Level:u3}] [{SourceContext}] {Message:lj}{NewLine}{Exception}"
        }
      }
    ],
    "Enrich": [
      "FromLogContext",
      "WithExceptionDetails",
      "WithDefaultDestructurers",
      "WithProcessId",
      "WithThreadId",
      "WithMachineName",
      "WithEnvironmentUserName"
    ]
  }
}

关键改动说明

  • 给Debug接收器的Args添加restrictedToMinimumLevel: "Debug"和restrictedToMaximumLevel: "Debug",这两个参数组合后,该接收器只会处理仅Debug级的日志,Info、Warning等高级别日志不会输出到Debug窗口。
  • 全局MinimumLevel.Default保持Debug,确保所有级别的日志都能被Serilog捕获,这样Debug接收器能拿到Debug级日志,其他接收器也能拿到各自级别范围内的日志。
  • Console接收器的restrictedToMinimumLevel: "Information"已经确保它不会处理Debug级日志,无需修改。

内容的提问来源于stack exchange,提问作者Sharov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:12:46