In a ASP.NET Core 6 project using a WebApplicationBuilder
<Project Sdk="Microsoft.NET.Sdk.Web">
I am able to get a logger right after it is defined. This is very useful so I can use the logger in the rest of the application configuration.
_builder.Logging.ClearProviders()
.AddLog4Net();
var logger = _builder.Logging.Services.BuildServiceProvider()
.GetService<ILoggerFactory>()
.CreateLogger<MyType>();
But when I define a Worker Service using a IHostBuilder
<Project Sdk="Microsoft.NET.Sdk.Worker">
I am only able to configure logging, and cannot get a logger before after _builder.Build() which is to late.
_builder.ConfigureLogging(x =>
{
x.ClearProviders();
x.AddLog4Net();
};
var Logger = _builder.Build().Services.GetRequiredService<ILoggerFactory>()
.CreateLogger<MyType>();
Why are these builders different and how do I get the logger right after defining it with ConfigureLogging?