【问题标题】:Custom Serilog config possible from Program.cs?可以从 Program.cs 自定义 Serilog 配置吗?
【发布时间】:2020-02-12 18:46:54
【问题描述】:

我在启动构造函数期间在 ASP.NET Core 中生成自定义配置,如下所示:

public Startup(IWebHostEnvironment environment, IConfiguration configuration) {
    Environment = environment;

    // Add extra config - configs added later override ones added earlier when key names clash
    Configuration = new ConfigurationBuilder()
        .AddConfiguration(configuration)
        .AddXmlFile("appsettings.xml")
        .Build();
}

我的问题是,虽然这个新的IConfiguration 可以从ConfigureServicesConfigure 访问,但不能从CreateHostBuilder (Program.cs) 中的.UseSerilog() 调用访问。所以,我在打电话时无法访问我的 XML 配置:

webBuilder
    .UseStartup<Startup>()
    .UseSerilog((context, config) => {
        config.ReadFrom.Configuration(context.Configuration);
    });

我该如何解决这个问题?我可以将新配置提供给UseSerilog() lambda,还是可以稍后在ConfigureServices() 中配置记录器?

【问题讨论】:

    标签: c# asp.net-core serilog


    【解决方案1】:

    好的,我发现我可以在IWebHostBuilder 链中(而不是在Startup 构造函数中)前面的.UseConfiguration() 来拉入我的XML 配置设置:

    webBuilder
        .UseConfiguration(new ConfigurationBuilder().AddXmlFile("appsettings.xml").Build())
        .UseSerilog((context, config) => {
            config.ReadFrom.Configuration(context.Configuration);
        })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-03
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多