如何通过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
相关产品推荐
相关产品推荐

