Home > Blockchain >  How to configure ILoggerFactory in .NET 6
How to configure ILoggerFactory in .NET 6

Time:08-18

In .NET 5 Startup.cs class there is Configure method which it's inside ILoggerFactory interface is injected. See below:

     public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            loggerFactory.AddFile("Logs/mylog-{Date}.txt");

            app.UseRouting();

            app.UseAuthentication();
            app.UseAuthorization();
            
            ..........

        }

In .NET 6 how can I get the ILoggerFactory after the var app = builder.Build(); and call its AddFile() method to write logs like .NET 5 above.

CodePudding user response:

You can do this like that:

using (var scope = app.Services.CreateScope())

{

var loggerFactory = scope.ServiceProvider.GetRequiredService(typeof(ILoggerFactory)); loggerFactory.AddFile("Logs/mylog-{Date}.txt");

}

CodePudding user response:

In your Program.cs file, add the following code:

var builder = WebApplication.CreateBuilder(args);

// some initialization.
// example:
builder.Services.AddControllers().AddNewtonsoftJson();

// add logging
builder.Services.AddLogging(logging =>
{
    logging.ClearProviders(); // optional (clear providers already added)
    logging.AddFile("Logs/mylog-{Date}.txt")
});

CodePudding user response:

Optimal Answer

After installing Serilog.Extensions.Logging.File nuget package, writing below code:

app.Services.GetRequiredService<ILoggerFactory>().AddFile("Logs/mylog-{Date}.txt");
  • Related