[英]Custom Serilog config possible from Program.cs?
我在啟動構造函數期間在 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
可以從ConfigureServices
和Configure
訪問,但不能從CreateHostBuilder
(Program.cs) 中的.UseSerilog()
調用訪問。 所以,我在打電話時無法訪問我的 XML 配置:
webBuilder
.UseStartup<Startup>()
.UseSerilog((context, config) => {
config.ReadFrom.Configuration(context.Configuration);
});
我怎樣才能解決這個問題? 我可以將新配置提供給UseSerilog()
lambda,還是可以稍后在ConfigureServices()
中ConfigureServices()
記錄器?
OK,我發現我可以.UseConfiguration()
早前在IWebHostBuilder
鏈(而不是在Startup
的構造函數)在我的XML配置設置拉:
webBuilder
.UseConfiguration(new ConfigurationBuilder().AddXmlFile("appsettings.xml").Build())
.UseSerilog((context, config) => {
config.ReadFrom.Configuration(context.Configuration);
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.