多年的经验,日志记录是软件开发的重要组成部分。没有日志记录机制的系统不是完善的系统。在开发阶段可以通过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。

非主机控制台

添加提供程序

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

创建日志

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

运行输出

第三方日志框架

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

log4net 在net core 3.0使用

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

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

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

运行查看日志文件

nlog 在net core 3.0使用

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

添加配置文件nlog.config

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

createhostbuilder方法添加

使用

serilog 在net core 3.0使用

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

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

main方法添加

运行输出:

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

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