添加到依赖注入后如何访问 Log4Net

How to access Log4Net after adding it to Dependency Injection

这是我第一次使用 Microsoft.Extensions.Logging.Log4Net.AspNetCore

我有一个 WPF 应用程序,我在 App.xaml.csApp 方法中的 CreateDefaultBuilder 中添加了 Log4Net 提供程序。紧接着,我想使用 LogInformation 说“启动应用程序”来写入日志文件。据我所知,由于将其添加到依赖注入容器的方式,我似乎无法做到这一点。我必须要么调用一个方法来访问参数列表中的 DI 容器,要么将 Log4Net 添加到 ServiceProvider,然后以这种方式检索服务。但是,这似乎不对,因为我实际上会将 Log4Net 添加到 DI 两次。

有没有办法在配置 Log4Net 后立即访问 DI 容器,以便我可以写入日志文件?

Host = Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder()
.ConfigureAppConfiguration((context, appBuilder) =>
{
   // Do some stuff here    
}).ConfigureLogging(logBuilder =>
{
   logBuilder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
   logBuilder.AddLog4Net("log4net.config");
})
.ConfigureServices((context, services) =>
{      
   Configuration = context.Configuration;

   ConfigureServices(Configuration, services);
})
.Build();

ServiceProvider = Host.Services;

// How to access Log4Net here?
_ISomeLogger.LogInformation("Starting Application");

更新

我正在使用以下示例:https://www.thecodebuzz.com/logging-using-log4net-net-core-console-application/

解决方案是在构建后立即从 ServiceProvider 访问 Log4Net

logger = (ILogger<Program>)ServiceProvider.GetService(typeof(ILogger<Program>));