net Core3.0如果实现记录日志

  介绍

本篇文章给大家分享的是有关。净Core3.0如果实现记录日志,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

多年的经验,日志记录是软件开发的重要组成部分。没有日志记录机制的系统不是完善的系统。在开发阶段可以通过调试附件进程进行交互调试,可以检测到一些问题,但是在上线之后,日志的记录起到至关重要的作用。它可使我们在系统出现问题之后,排查错误提供依据。

。净Core3.0内置多种日志记录程序,并且有第三方提供的日志记录程序框架如:log4net, NLog, Serilog, elmah.io等。后面会介绍前三种日志框架如何与.NETcore3.0结合起来进行使用。

内置日志记录提供程序

ASP。NETCore提供以下提供程序:

    <李>控制台,可以在控制台查看日志输出李 <>李调试vs工具——》开始调试——》输出窗口进行查看日志输出李 <李> EventSource -可使用PerfView实用工具收集和查看日志李 <李>事件日志-》仅在windows系统下可以使用事件查看器查看日志李 <>李TraceSource李 <>李AzureAppServicesFile李 <>李AzureAppServicesBlob李 <>李ApplicationInsights李

通用主机的应用程序和非主机应用程序使用的方式也是不同的。因为通用主机内部封装了依赖注入,日志记录、配置,IHostedService的实现,并且默认配置了控制台,调试,EventSource以及事件日志(仅当在windows上运行时)提供程序。源码如下

。ConfigureLogging ((hostingContext、日志)=比;   {   var isWindows=RuntimeInformation.IsOSPlatform (OSPlatform.Windows);//重要:这个需要添加* *加载配置,这让//默认是被配置。   如果(isWindows)   {//默认EventLogLoggerProvider警告或以上   logging.AddFilter(水平=比;水平在=LogLevel.Warning);   }      logging.AddConfiguration (hostingContext.Configuration.GetSection (“Logging"));   logging.AddConsole ();   logging.AddDebug ();   logging.AddEventSourceLogger ();      如果(isWindows)   {//添加EventLogLoggerProvider>公共静态IHostBuilder CreateHostBuilder (string [] args)=比;   Host.CreateDefaultBuilder (args)   .ConfigureLogging(日志=比;   {   logging.ClearProviders();//去掉默认添加的日志提供程序   logging.AddConsole ();   logging.AddDebug ();   logging.AddEventSourceLogger ();   logging.AddEventLog ();//logging.AddTraceSource ();      })   .ConfigureWebHostDefaults (webBuilder=比;   {   webBuilder.UseStartup ();   })

在网络应用或托管服务中,由依赖关系注入(DI)获取ILogger实例。

 [HttpGet]
  公共IEnumerableGet ()
  {//内置日志
  _logger。LogTrace(1000年,“日志跟踪msg");//_logger。LogDebug(1001年,“日志调试msg");//_logger。LogInformation(1002年,“日志信息msg");//_logger。LogWarning(1003年,“日志警告msg");//_logger。LogError(1004年,“日志错误msg");//_logger。LogCritical(1005年,“日志关键msg");//

。净Core3.0如果实现记录日志

。净Core3.0如果实现记录日志

。净Core3.0如果实现记录日志

添加提供程序

在创建LoggerFactory时调用提供程序的添加{提供者名称}扩展方法:

var loggerFactory=loggerFactory。创建(builder=比;   {   构建器   .AddFilter (“Microsoft" LogLevel.Warning)   .AddFilter(“煤气报修,LogLevel.Warning)   .AddFilter (“LoggingConsoleApp.Program" LogLevel.Debug)   .AddConsole ()   .AddEventLog ();   });

在非主机控制台应用中,使用LoggerFactory来创建ILogger实例。

 ILogger实例记录器=loggerFactory.CreateLogger ();
  logger.LogInformation(“非主机模式输出日志message"); 
·

运行输出

。净Core3.0如果实现记录日志

net Core3.0如果实现记录日志