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

如何将Serilog的MinimumLevel.Override配置迁移至appsettings.json?

如何将Serilog的MinimumLevel覆盖配置迁移至appsettings.json?

当然可以把MinimumLevel.Override的配置迁移到appsettings.json中,这样无需修改代码就能灵活调整日志级别,适配不同场景(比如生产环境隐藏系统日志、调试环境监控请求)。具体实现步骤如下:

1. 安装依赖包

确保项目已安装Serilog.Settings.Configuration NuGet包,它支持Serilog从配置文件读取配置项。

2. 在appsettings.json中配置Serilog

将原本硬编码的日志级别覆盖、输出模板、Enrich等配置移到appsettings.json的Serilog节点下:

{
  "Serilog": {
    "MinimumLevel": {
      "Default": "Information", // 全局默认日志级别,对应代码里的minLevelLocal
      "Override": {
        "System": "Error",
        "Microsoft": "Error",
        // 调试时可以打开以下配置,生产环境注释或删除即可
        "Microsoft.AspNetCore.Hosting": "Debug",
        "Microsoft.AspNetCore.Routing.EndpointMiddleware": "Debug"
      }
    },
    "WriteTo": [
      {
        "Name": "Console",
        "Args": {
          "outputTemplate": "[{Timestamp:HH:mm:ss.fff} {Level:u3}] {Message:lj} {Properties:j}{NewLine}{Exception}"
        }
      }
    ],
    "Enrich": [
      "FromLogContext",
      "WithMachineName",
      "WithProcessName",
      "WithMemoryUsage"
    ]
  }
}

3. 修改LoggingExtensions代码

调整Serilog初始化逻辑,改为从配置文件读取配置,替代原来的硬编码:

public static class LoggingExtensions
{
    public static IHostBuilder AddLogging(this IHostBuilder builder, LogEventLevel minLevelLocal = LogEventLevel.Information)
    {
        return builder.UseSerilog((context, loggerConfig) =>
        {
            loggerConfig
                .ReadFrom.Configuration(context.Configuration)
                // 若需要保留代码传入的minLevelLocal作为配置文件的 fallback,可保留此行
                // .MinimumLevel.Is(minLevelLocal)
                .Enrich.FromLogContext()
                .Enrich.WithMachineName()
                .Enrich.WithProcessName()
                .Enrich.WithMemoryUsage();
        });
    }
}

说明

  • 配置文件中的MinimumLevel.Override会完全替代代码里的硬编码配置,后续调整日志级别只需修改appsettings.json,无需重新编译代码。
  • 可以根据环境(开发/生产)创建不同的配置文件(如appsettings.Development.json、appsettings.Production.json),各自配置对应的日志级别覆盖规则,ASP.NET Core会自动根据环境加载对应配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:45:47