For .net core 7/.net7, I have prepared static logger class which has a initialization method to initialize an instance of static ILogger object from ILoggerFactory
public static class LogHelperService{
private static ILoggerFactory _loggerFactory;
private static ILogger _logger;
private static IHttpContextAccessor _httpContextAccessor;
public static void Initialize(ILoggerFactory loggerFactory,IHttpContextAccessor httpContextAccessor)
{
_loggerFactory = loggerFactory;
_logger = _loggerFactory.CreateLogger("LogHelperService");
_httpContextAccessor = httpContextAccessor;
}
public static void LogError( Exception exception, string message, params object[] args)
{
_logger.Log(LogLevel.Error, exception, message, args);
}
public static void LogError( string message, params object[] args)
{
_logger.Log(LogLevel.Error, message, args);
}
public static void LogInformation(string message, params object[] args)
{
_logger.Log(LogLevel.Information, message, args);
}
public static void LogInformation(Exception exception, string message, params object[] args)
{
_logger.Log(LogLevel.Information, exception, message, args);
}
}
Then In Program.js, After the app object created from WebApplicationBuilder,
I have called the Initialization function to create the static Logger
var app = builder.Build();
//initialize Static service with server resources
LogHelperService.Initialize( app.Services.GetService<ILoggerFactory>() ,app.Services.GetService<IHttpContextAccessor>());