.Net Core中的日志组件(Logging)

1、介绍

  Logging组件是微软实现的日志记录组件包括控制台(Console)、调试(Debug)、事件日志(EventLog)和TraceSource,但是没有实现最常用用的文件记录日志功能(可以用其他第三方的如NLog、Log4Net。之前写过NLog使用的文章)。

2、默认配置

  新建.Net Core Web Api项目,添加下面代码。

640?wx_fmt=png

运行结果如下:

640?wx_fmt=png

 

我刚开始接触的时候,我就有一个疑问我根本没有配置关于Logger的任何代码,仅仅写了注入,为什么会起作用呢?最后我发现其实是在Program类中使用了微软默认的配置。

640?wx_fmt=png

下面为CreateDefaultBuilder方法的部分源码,整个源码在 https://github.com/aspnet/MetaPackages,可以看出在使用模板创建项目的时候,默认添加了控制台和调试日志组件,并从appsettings.json中读取配置。

640?wx_fmt=png

 3、建立自己的Logging配置

  首先修改Program类

640?wx_fmt=png

修改Startup类如下面,此类的执行顺序为 Startup构造函数 > ConfigureServices > Configure

640?wx_fmt=png

这种结构就比较清晰明了。

4、Logging源码解析

  三种配置其实都是为了注入日志相关的服务,但是调用的方法稍有不同。现在我们以第二种配置来详细看看其注入过程。首先调用AddLogging方法,其实现源码如下:

640?wx_fmt=png

接着会调用AddConfiguration

640?wx_fmt=png

下面来看打印日志的具体实现: 

640?wx_fmt=png

下面具体看一下Console的打印实现:

首先ConsoleLogger实现了ILogger的Log方法,并在方法中调用WriteMessage方法

640?wx_fmt=png

 下面看日志被放入队列后的具体实现: 

640?wx_fmt=png

原文地址:https://www.cnblogs.com/MicroHeart/p/9341286.html

 
 

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值