,转载请联系UP技控公众号。.NETCore支持各种内置和第三方日志记录提供程序的日志记录API。让我们首先看看如何将日志记录API与内置提供程序一起使用。调用CreateDefaultBuilder,这将添加以下日志记录提供程序:ConsoleDebugEventSourceEventLog:仅限WindowsHost.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder=>{webBuilder.UseStartup();});}要覆盖Host.CreateDefaultBuilder添加的默认日志记录提供程序集,请调用ClearProviders并添加所需的日志记录提供程序.例如,以下代码:调用ClearProviders以从生成器中删除所有ILoggerProvider实例。添加控制台日志记录提供程序。publicstaticIHostBuilderCreateHostBuilder(string[]args)=>Host.CreateDefaultBuilder(args).ConfigureLogging(logging=>{logging.ClearProviders();logging.AddConsole();}).ConfigureWebHostDefaults(webBuilder=>{webBuilder.UseStartup<启动>();});使用第三方替代,以Nlog为例子修改program.csusingSystem;usingNLog.Web;usingMicrosoft.AspNetCore.Hosting;usingMicrosoft.Extensions.Logging;usingMicrosoft.Extensions.Hosting;publicstaticvoidMain(string[]args){varlogger=NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();try{logger.Debug("initmain");CreateHostBuilder(args).Build().Run();}catch(Exceptionexception){//NLog:catchsetuperrorslogger.Error(exception,"Stoppedprogrambecauseofexception");throw;}finally{//Ensuretoflushandstopinternaltimers/threadsbeforeapplication-exit(AvoidsegmentationfaultonLinux)NLog.LogManager.Shutdown();}}publicstaticIHostBuilderCreateHostBuilder(string[]args)=>主机.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder=>{webBuilder.UseStartup();}).ConfigureLogging(logging=>{logging.ClearProviders();logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);}).UseNLog();//NLog:SetupNLogforDependencyinjection写日志usingMicrosoft.Extensions.Logging;publicclassHomeController:Controller{privatereadonlyILogger_logger;publicHomeController(ILoggerlogger){_logger=logger;_logger.LogDebug(1,"NLoginjectedintoHomeController");}publicIActionResultIndex(){_logger.LogInformation("Hello,thisistheindex!");returnView();}