为了账号安全,请及时绑定邮箱和手机立即绑定

ILoggerFactory 与 serviceCollection.AddLogging

ILoggerFactory 与 serviceCollection.AddLogging

C#
素胚勾勒不出你 2021-07-23 18:01:13
我的 asp.net core 2.x 应用程序有典型的日志记录要求:在生产中使用应用程序洞察力,开发环境中的控制台和调试记录器根据类别和日志级别设置一些过滤器现在我看到至少三个不同的 API 来配置日志记录:WebHostBuilder.ConfigureLogging()在 Program.cs 中public static void Main(string[] args){    var webHost = new WebHostBuilder()                       .ConfigureLogging((hostingContext, logging) =>        {            logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));            logging.AddConsole();            logging.AddDebug();            logging.AddAzureWebAppDiagnostics();        })        .UseStartup<Startup>()        .Build();    webHost.Run();}注入ILoggerFactoryStartup.Configure 方法:public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory, IServiceProvider serviceProvider){    loggerFactory.AddConsole();    loggerFactory.AddAzureWebAppDiagnostics();    loggerFactory.AddApplicationInsights(app.ApplicationServices,         (category, level) => level >= (category == "Microsoft" ? LogLevel.Error : LogLevel.Information));    }在 Startup.ConfigureServices 中:public void ConfigureServices(IServiceCollection services){    services.AddLogging(logging =>     {        logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));        logging.AddConsole();        logging.AddDebug();        logging.AddAzureWebAppDiagnostics();    }}那些有什么区别?什么时候用哪个?
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

第三种用法ConfigureServicesWebHostBuilder. 和第一个用途ConfigureLogging是一个IHostBuilder在的扩展方法HostingHostBuilderExtensions

他们都调用IServiceCollection的扩展方法AddLoggingLoggingServiceCollectionExtensionsMicrosoft.Extensions.Logging包。该AddLogging方法首先尝试将两个单ILoggerFactoryILogger<>和的枚举LoggerFilterOptions。然后执行 logging( ILoggingBuilder) 的操作,最后调用AddProvider方法添加这些提供程序(控制台、Azure)实现的日志提供程序并调用SetMinimumLevel添加LoggerFilterOptions

第二种方法直接将日志提供程序添加到LoggerFactory. 并且在调用LoggerFactory日志记录方法时调用这些提供程序。

至于订单,第二个和第三个方法是由WebHostBuilderUseStartup<TStartup>方法调用的


查看完整回答
反对 回复 2021-07-31
  • 2 回答
  • 0 关注
  • 468 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信