Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get ILoggerFactory in .NET 6

In .Net5 ILoggerFactory is used as Configure function in Startup.cs as follows :

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
    //here we used loggerFactory
    loggerFactory.AddProvider(loggerprovider);
}

In .Net6 how to get it with app or builder

var app = builder.Build();

OR

var builder = WebApplication.CreateBuilder(args);
like image 621
Faraz Ahmed Avatar asked Dec 15 '25 11:12

Faraz Ahmed


2 Answers

To get the actual logger factory instance:

var app = builder.Build();
var lf = app.Services.GetRequiredService<ILoggerFactory>();

One could also use GetService rather than GetRequiredService. When the service does not exist, GetService returns null and GetRequiredService throws an exception. Pros and cons discussed here:

https://andrewlock.net/the-difference-between-getservice-and-getrquiredservice-in-asp-net-core/

like image 82
John Goudy Avatar answered Dec 17 '25 02:12

John Goudy


WebApplicationBuilder exposes Logging property which has AddProvider(ILoggingBuilder, ILoggerProvider) extension method available. Try using it:

builder.Logging.AddProvider(loggerprovider);
like image 41
Guru Stron Avatar answered Dec 17 '25 02:12

Guru Stron



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!