.net core 使用 Serilog 作为日志提供者

nuget引入 Serilog.AspNetCore

Startup构造函数:

 

        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;

            Log.Logger = new LoggerConfiguration()
                .ReadFrom.Configuration(configuration)
         // 最小的日志输出级别
         //.MinimumLevel.Error()
         // 日志调用类命名空间如果以 Microsoft 开头,覆盖日志输出最小级别为 Information
         //.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
         .Enrich.FromLogContext()
         // 配置日志输出到控制台
         .WriteTo.Console()
        // 配置日志输出到文件,文件输出到当前项目的 logs 目录下
        .WriteTo.Logger(lc => {
            lc.Filter.ByExcluding(e => e.Level == LogEventLevel.Error || e.Level == LogEventLevel.Debug)
            .WriteTo.File("logs/normal/log.txt",
             outputTemplate: "{Timestamp:HH:mm:ss} [{Level}] {SourceContext} {NewLine}{Message}{NewLine}{Exception}",
                rollingInterval: RollingInterval.Day,
                rollOnFileSizeLimit: true);
        })
         .WriteTo.Logger(lc => {
             lc.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Error)
             .WriteTo.File("logs/errors/log.txt",
              outputTemplate: "{Timestamp:HH:mm:ss} [{Level}] {SourceContext} {NewLine}{Message}{NewLine}{Exception}",
                 rollingInterval: RollingInterval.Day,
                 rollOnFileSizeLimit: true);
         })
          .WriteTo.Logger(lc => {
              lc.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Debug)
              .WriteTo.File("logs/debugs/log.txt",
               outputTemplate: "{Timestamp:HH:mm:ss} [{Level}] {SourceContext} {NewLine}{Message}{NewLine}{Exception}",
                  rollingInterval: RollingInterval.Day,
                  rollOnFileSizeLimit: true);
          })
         // 创建 logger
         .CreateLogger();
        }

 

 

 

CreateHostBuilder 里面,UseSerilog

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
           .UseSerilog()
            .UseServiceProviderFactory(new JackAspNetCoreServiceProviderFactory())
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup();
                });
        }

 appsettings设置

  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "System": "Warning",
        "Microsoft": "Warning"
      }
    }
  }

 

你可能感兴趣的:(.net core 使用 Serilog 作为日志提供者)