在配置准备就绪之前配置Serilog?
我有一个Web API(.NET Core 3.1),它使用Serilog进行记录。很早地将Serilog添加到 iwebhostbuilder
:
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost
.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog((context, configuration) =>
{
if (context.HostingEnvironment.IsDevelopment())
{
configuration.WriteTo.Console(LogEventLevel.Debug);
return;
}
configuration.WriteTo.ApplicationInsights(TelemetryConverter.Traces, LogEventLevel.Error);
});
}
这意味着(AFAIK)我此时已经配置了该记录器。因此,这是我主要要做的第一件事:
public static int Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
.CreateLogger();
var host = CreateWebHostBuilder(args).Build();
host.Run();
}
但是行 .readfrom.configuration(配置)
需要设置配置。这通常是在 startup
(再次是AFAIK)中完成的,此时尚未运行。显然,我可以将我的 loggerConfiguration
移至以后,但是在配置之前, .isserilog
将调用。
那么,当我尚未设置时,如何使用 iconfugration
配置Serilog?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
@rubenbartelink指出了一个很好的评论。
这在
特别是两阶段初始化部分,该部分指出:
@RubenBartelink pointed to a very good ressource in comment.
This is also described in the Serilog for ASP.NET Core documentation.
In particular the two-stage initialization part, which states: