介绍
本篇文章给大家分享的是有关。净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");//
添加提供程序
在创建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");
运行输出