How to add ILoggerFactory to Startup dotnet core 3.1

1.9k views Asked by At

I'm using dotnet core 3.1 and I want to add ILoggerFactory to startup constructor.

But I get an error:

'Unable to resolve service for type 'Microsoft.Extensions.Logging.ILoggerFactory' while attempting to activate 'Startup'.'

My configuration in Program.cs:

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureLogging(logging =>
                {
                    logging.ClearProviders();
                    logging.AddConsole();
                })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

What should I do?

1

There are 1 answers

1
mike On

You should configure logging in the HTTP request pipeline(your Startup configure method).

eg.

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
     //depending on what you use for logging 
   loggerFactory.AddLog4Net();
     //or
   loggerFactory.CreateLogger...
     ...
}