This has changed significantly with the release of ASP.NET Core 2.0. In ASP.NET Core 2.x, logging is created in the host builder. This means that logging is available through the DI by default and can be implemented in the class Startup:
public class Startup
{
private readonly ILogger<Startup> _logger;
public IConfiguration Configuration { get; }
public Startup(ILogger<Startup> logger, IConfiguration configuration)
{
_logger = logger;
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
_logger.LogInformation("ConfigureServices called");
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
_logger.LogInformation("Configure called");
}
}
, ASP.NET Core 3.0 . HostBuilder ( WebHostBuilder), , , -. , -. , , IConfiguration Startup. , ConfigureServices. Configure :
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILogger<Startup> logger)
{
logger.LogInformation("Configure called");
}
ConfigureServices, WebHostBuilder WebHost Startup. , , - . , , ConfigureServices.