亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 545 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號