代码之家  ›  专栏  ›  技术社区  ›  j-hurst

Serilog ReadFrom配置

  •  2
  • j-hurst  · 技术社区  · 6 年前

    我正在尝试从加载Serilog配置appsettings.json文件使用 Serilog.Settings.Configuration

    这是我的生活程序.cs文件:

        return WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .ConfigureLogging(
            (hostingContext, loggingBuilder) =>
            {
                loggingBuilder.ClearProviders();
                loggingBuilder.AddSerilog(
                    new LoggerConfiguration()
                        .ReadFrom.ConfigurationSection(hostingContext.Configuration.GetSection("Serilog"))
                        .CreateLogger()
                );
            }
        );
    

    这是我的生活appsettings.json文件文件:

        {
        "Serilog": {
            "Using": [ "Serilog.Sinks.MSSqlServer" ],
            "MinimumLevel": {
                "Default": "Verbose",
                "Override": {
                    "Microsoft": "Verbose",
                    "System": "Verbose",
                    "Microsoft.AspNetCore.Authentication": "Verbose"
                }
            },
            "WriteTo": [
                {
                    "Name": "MSSqlServer",
                    "Args": {
                        "connectionString": "*my_connectionString*",
                        "tableName": "ErrorLog"
                    }
                }
            ]
        }}
    

    NuGet安装包:

    • 微软.AspNetCore.App版本2.1.1
    • Serilog v2.7.1版
    • Serilog.Extensions.Logging日志版本2.0.2
    • Serilog.Settings.Configuration配置版本3.0.0-dev-00119
    • Serilog.Sinks.MSSqlServer服务器版本5.1.2
    1 回复  |  直到 5 年前
        1
  •  16
  •   agua from mars    6 年前

    我这样配置:

    return WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .UseSerilog((hostingContext, loggerConfiguration) => loggerConfiguration
                    .ReadFrom.Configuration(hostingContext.Configuration))
                .Build();
    

    默认情况下 Serilog 寻找 配置中的节

        2
  •  6
  •   Manjunatha DL    6 年前

    我是这样配置的

         public static void Main(string[] args)
         {
            var _config = new ConfigurationBuilder()
                        .AddJsonFile("loggerconfig.json")//mantained separate 
         config file.
                        .Build();
            Log.Logger = new LoggerConfiguration()
                        .ReadFrom.Configuration(_config)
                        .CreateLogger();
            CreateWebHostBuilder(args).Build().Run();
        }
    
        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseSerilog()
                .UseStartup<Startup>();
    

    根据Serilog的说法,这是更好的方法。

        3
  •  0
  •   Saher Ahwal    4 年前

    下面是我如何做到阅读的日志记录.json:

                var builder = new ConfigurationBuilder()
                    .AddJsonFile(path: "logging.json", optional: false, reloadOnChange: true);
    
                var config = builder.Build();
                Log.Logger = new LoggerConfiguration()
                            .Enrich.With(new EventBusLogEnricher())
                            .ReadFrom.Configuration(config)
                            .CreateLogger();