欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.NET Core3.0 日志 logging的实现

程序员文章站 2022-08-07 15:41:59
多年的经验,日志记录是软件开发的重要组成部分。没有日志记录机制的系统不是完善的系统。在开发阶段可以通过debug附件进程进行交互调试,可以检测到一些问题,但是在上线之后,日志的记录起到至关重要的作用。...

.NET Core3.0 日志 logging的实现

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

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

内置日志记录提供程序

asp.netcore 提供以下提供程序:

  • 控制台-可以在控制台查看日志输出
  • 调试-vs工具 -》开始调试-》输出窗口进行查看日志输出
  • eventsource-可使用perfview 实用工具收集和查看日志
  • eventlog-》仅在windows系统下可以使用事件查看器查看日志
  • tracesource
  • azureappservicesfile
  • azureappservicesblob
  • applicationinsights

创建使用日志

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

通用主机

添加提供程序

可自行选择提供程序来替换默认提供程序。在createhostbuilder时候 调用clearproviders(),然后添加所需的提供程序。我们创建一个api项目为例

创建日志

在 web 应用或托管服务中,由依赖关系注入 (di) 获取 ilogger。

.NET Core3.0 日志 logging的实现

.NET Core3.0 日志 logging的实现

.NET Core3.0 日志 logging的实现

非主机控制台

添加提供程序

在创建 loggerfactory 时调用提供程序的 add{provider name} 扩展方法:

创建日志

在非主机控制台应用中,使用 loggerfactory 来创建 ilogger。

运行输出

.NET Core3.0 日志 logging的实现

第三方日志框架

log4net,nlog和serilog这3种日志记录框架几乎在.net空间中占主导地位,不需要太多介绍。看看最近6周的下载排名就知道了。如图

.NET Core3.0 日志 logging的实现

log4net 在net core 3.0使用

.NET Core3.0 日志 logging的实现

引用log4net到项目中,安装nuget包

在项目中添加log4net.config文件,右键改文件属性-》复制到输出目录选择-》始终复制

在startup文件中添加log4net配置的文件

运行查看日志文件

.NET Core3.0 日志 logging的实现

nlog 在net core 3.0使用

.NET Core3.0 日志 logging的实现

引用nlog到项目中,安装nuget包

添加配置文件nlog.config

在program.cs文件配置 main方法添加

createhostbuilder方法添加

使用

.NET Core3.0 日志 logging的实现

serilog 在net core 3.0使用

.NET Core3.0 日志 logging的实现

引用serilog到项目中,安装nuget包

在program.cs文件进行logger初始化

main方法添加

运行输出:

.NET Core3.0 日志 logging的实现

小结:本文主要讲解net core3.0内置的日志提供程序和与第三方日志框架(log4net,nlog,serilog)的使用。

到此这篇关于.net core3.0 日志 logging的实现的文章就介绍到这了,更多相关.net core3.0 日志 logging内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!