简介:

作为基础组件,日志组件被其他组件和中间件所使用,它提供了一个统一的编程模型,即不需要知道日志最终记录到哪里去,只需要调用它即可。

使用方法很简单,通过依赖注入ILogFactory(CreateLogger方法)或ILogger<T>对象,获取一个ILogger对象,然后通过ILogger的各种扩展方法(都是调用Log方法)记录不同级别的日志。

源码剖析:

总结:

日志组件其实就是工厂模式的应用,但进行了改进,LoggerFactory每次都返回一个Logger对象,而Logger对象里面包含了真正要干活的所有ILogger对象的集合,形成一个外观模式。

遵循却又不拘泥于设计模式,灵活多变的手法,值得学习!


相关文章: 
  • asp.net core源码飘香:从Hosting开始

  • asp.net core源码飘香:Configuration组件

  • asp.net core源码飘香:Options组件

原文地址:http://www.cnblogs.com/shiliyuanma/p/6706543.html

.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

asp.net core源码飘香:Logging组件相关推荐

  1. asp.net core源码飘香:Options组件

    简介: Options组件是一个小组件,但用的地方很多.它本质是将一个POCO类注册到容器中(主要在Startup中作为其他组件的配置功能提供),后续使用的时候就可以通过比如构造函数注入等获取到POC ...

  2. asp.net core源码飘香:Configuration组件

    简介: 这是一个基础组件,是一个统一的配置模型,配置可以来源于配置文件(json文件,xml文件,ini文件),内存对象,命令行参数,系统的环境变量又或者是你自己扩展的配置源,该组件将各个配置源的数据 ...

  3. asp.net core源码飘香:从Hosting开始

    知识点: 1.Kestrel服务器启动并处理Http请求的过程. 2.Startup的作用. 源码飘香: 总结: asp.net core将web开发拆分为多个独立的组件,大多以http中间件的形式添 ...

  4. ASP.NET Core 源码学习之 Logging[2]:Configure

    在上一章中,我们对 ASP.NET Logging 系统做了一个整体的介绍,而在本章中则开始从最基本的配置开始,逐步深入到源码当中去. 默认配置 在 ASP.NET Core 2.0 中,对默认配置做 ...

  5. ASP.NET Core 源码学习之Logging[1]:Introduction

    在ASP.NET 4.X中,我们通常使用 log4net, NLog 等来记录日志,但是当我们引用的一些第三方类库使用不同的日志框架时,就比较混乱了.而在 ASP.Net Core 中内置了日志系统, ...

  6. ASP.NET Core 源码学习之 Options[4]:IOptionsMonitor

    前面我们讲到 IOptions 和 IOptionsSnapshot,他们两个最大的区别便是前者注册的是单例模式,后者注册的是 Scope 模式.而 IOptionsMonitor 则要求配置源必须是 ...

  7. ASP.NET Core 源码学习之 Options[3]:IOptionsSnapshot

    2017-06-28 更新: OptionsSnapshot 已改为 OptionsManager 变更详情 IOptionsCache 已改为 IOptionsMonitorCache 变更详情 在 ...

  8. ASP.NET Core 源码学习之 Options[2]:IOptions

    在 上一篇 中,介绍了一下Options的注册,而使用时只需要注入 IOption 即可: public ValuesController(IOptions<MyOptions> opti ...

  9. 如何编译ASP.NET Core源码

    目录 编译ASP.NET Core源码 准备工作 下载.net core源码 安装依赖 编译源代码 通过调式的方式查看源代码 编译ASP.NET Core源码 大家都知道.net core是开源的,但 ...

最新文章

  1. 浅析对象访问属性的.和[]方法区别
  2. 售前比售后机器人控制逻辑更复杂,仅凭大规模数据后发优势难赶超!
  3. 独家 | 手把手教你用Python进行Web抓取(附代码)
  4. sublime text3 插件安装方法
  5. 小工匠聊架构-超高并发秒杀系统设计 01_总体原则和架构演进
  6. 习题11.6 fill_n
  7. 谈谈dpdk应用层包处理程序的多进程和多线程模型选择时的若干考虑
  8. 没有基础学python_python没有基础好学吗
  9. 创建相似对象,就交给『工厂模式』吧
  10. php Heredoc应用说明
  11. dom contains 包含关系
  12. Vue学习笔记(六) 表单输入绑定
  13. 使用python简单分析个人微信好友
  14. CAN BusOff相关知识点
  15. vbs教程《弹出窗口》
  16. 增强型植被指数——EVI
  17. 图像常用的格式总结及比较
  18. PS制作搞笑印章 - 仿真印章 - 水印滤色
  19. 设置<hr>标签的样式
  20. C++程序的设计机制1 NVI机制

热门文章

  1. 《互联网+流通——F2R助力传统产业创新与转型》一一第1章 “互联网+”的新时代...
  2. 【100题】第五十三题 字符串的全排列
  3. GdiPlus[30]: IGPPen: 线帽
  4. Javascript 常用技巧 [2]
  5. MariaDB Spider 数据库分库分表实践 分库分表
  6. .NET内存性能分析指南
  7. NET问答: 枚举 和 常量 在使用时该怎么抉择?
  8. 通过Dapr实现一个简单的基于.net的微服务电商系统
  9. 使用 C# 9 的records作为强类型ID - 初次使用
  10. Windows 7 安装 .NET 5 / .NET Core 3.1 环境的方法和依赖文件