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

如何通过appsettings.json修改Serilog的最低日志输出级别

可以通过读取appsettings.json配置修改Serilog的最低日志输出级别,操作步骤如下:

  • 第一步:安装所需NuGet包
    你需要先安装Serilog.Settings.Configuration包,该包提供了从.NET配置系统读取Serilog配置的能力。
  • 第二步:在appsettings.json中添加Serilog配置节点
    示例配置如下:
    {
      "Serilog": {
        "MinimumLevel": "Information",
        "Override": {
          "Microsoft": "Warning",
          "System": "Error"
        }
      }
    }
    
    其中MinimumLevel字段即为全局最低日志输出级别,可选值为Verbose、Debug、Information、Warning、Error、Fatal;Override节点可以针对特定命名空间单独设置日志级别,优先级高于全局配置。
  • 第三步:修改Serilog初始化代码
    删除原代码中硬编码的.MinimumLevel.Verbose(),新增读取配置的逻辑,示例如下:
    // 构建配置读取实例,ASP.NET Core项目可直接注入IConfiguration,无需手动构建
    var configuration = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
        .Build();
    
    Serilog.Log.Logger = new LoggerConfiguration()
        .Enrich.WithExceptionDetails()
        .ReadFrom.Configuration(configuration) // 从配置文件读取Serilog设置
        .WriteTo.Console()
        .Enrich.WithProperty("Application", applicationName)
        .WriteTo.File(new JsonFormatter(renderMessage: true), "logs/myapp.txt", rollingInterval: RollingInterval.Day)
        .CreateLogger();
    

如果你同时在代码中硬编码了MinimumLevel规则,配置文件中的设置优先级更高,会覆盖硬编码值。如果开启了reloadOnChange: true,修改appsettings.json后不需要重启应用就能生效新的日志级别配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:15:03