如何将 ILoggerFactory 添加到启动 dotnet core 3.1

Posted

技术标签:

【中文标题】如何将 ILoggerFactory 添加到启动 dotnet core 3.1【英文标题】:How to add ILoggerFactory to Startup dotnet core 3.1 【发布时间】:2020-11-27 18:46:53 【问题描述】:

我正在使用 dotnet core 3.1,我想将 ILoggerFactory 添加到启动构造函数中。

但我得到一个错误:

'无法解析服务类型 'Microsoft.Extensions.Logging.ILoggerFactory' 尝试 激活“启动”。'

我在 Program.cs 中的配置:

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

我该怎么办?

【问题讨论】:

【参考方案1】:

您应该在 HTTP 请求管道中配置日志记录(您的启动配置方法)。

例如。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)

     //depending on what you use for logging 
   loggerFactory.AddLog4Net();
     //or
   loggerFactory.CreateLogger...
     ...

【讨论】:

以上是关于如何将 ILoggerFactory 添加到启动 dotnet core 3.1的主要内容,如果未能解决你的问题,请参考以下文章

我应该将 ILogger、ILogger<T>、ILoggerFactory 或 ILoggerProvider 作为库吗?

.NET Core ILoggerFactory过时(obsolete)问题解决方法

log4j2(一) 获取 ILoggerFactory

如何将程序添加到系统服务实现开机自启动

如何将程序添加到系统服务实现开机自启动

如何将程序快捷方式或脚本添加到启动项以实现自启动?