asp.net core源码飘香:Logging组件

简介:

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

使用方法很简单,通过依赖注入ILogFactoryCreateLogger方法)或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跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互联网账户系统如何设计

转载自 互联网账户系统如何设计 在很多互联网公司业务发展的早期&#xff0c;业务模式比较单一的情况下&#xff0c;涉及用户账户资金交易相关的逻辑也比较简单&#xff0c;但是随着公司业务模式的不断创新及类型的多元化发展&#xff0c;会渐渐发现现有系统账户逻辑越来越雍…

html、sqlserver、java基础总结

1.锚链接&#xff1a;<a name"maker1" id"marker2">乙位置</a><a href"#marker1、#marker2">甲位置</a> 2.块级元素和行内元素&#xff1a;块级元素&#xff1a;<li></li> <p></p> <td>…

数组(ArrayList)底层怎样扩容

ArrayList维护了数组transient Object[] elementData; 初始化 数组需要扩容时

HBase出现java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration问题

问题&#xff1a;Hbase在集群上运行报错&#xff1a;NoClassDefFoundError:org/apache/hadoop/hbase/HBaseConfiguration 需求&#xff1a;HBase使用Java创建表&#xff0c;打包成jar&#xff0c;提交到集群上行运行&#xff01; 在IDEA中使用Maven添加Hbase 代码&#xff1…

Visual Basic 15语言新特性

对于C#的两个重要特性元组和Ref返回值&#xff0c;Visual Basic 15提供了对等的实现。这两个特性都是“不完全的”&#xff0c;但已经可以提供足够的变通方案&#xff0c;让VB应用程序可以消费使用了这些特性的C#库。 元组 在VB中&#xff0c;从单个函数调用直接返回多个值是…

Struts2面试问题

转载自 Struts2面试问题 1.什么是Struts2&#xff1f; Apache Struts2是一个用Java构建Web应用程序的开源框架。Struts2基于OpenSymphony WebWork框架。它从Struts1中得到了很大的改进&#xff0c;使其更加灵活&#xff0c;易于使用和扩展。Struts2的核心组件是Action&…

java、sqlserver复习

一、java简答题&#xff1a; 1.java中我们学过的数据库类型转换有几种&#xff1f;分别是什么&#xff1f;转换规则是什么&#xff1f; 答&#xff1a;两种&#xff0c;自动类型转换和强制类型转换。 源类型大于目标类型时&#xff0c;需要自动转换。 源类型小于目标类型时&…

新版csdn

欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来&#xff0c;用它写博客&#xff0c;将会带来全新的体验哦&#xff1a; Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰…

玩转微信登录

前端对此接口进行请求 package com.chuang.bootplus.controller.wx;import com.alibaba.fastjson.JSONObject; import com.chuang.bootplus.entity.UserInfo; import com.chuang.bootplus.service.UserInfoService; import com.chuang.bootplus.utils.HttpClientUtil; import …

谷歌工程师文化中的几个核心原则

转载自 谷歌工程师文化中的几个核心原则 每周&#xff0c;一组谷歌员工都会在厕所的墙壁上粘贴一页来分享本周的测试小建议。有时这页纸会讨论依赖注入&#xff0c;并提供一个简单的示例展示如何用不同语言使用它&#xff1b;有时它可能会分享如何安装一个用于测量团队代码库…

初探CSRF在ASP.NET Core中的处理方式

前言 前几天&#xff0c;有个朋友问我关于AntiForgeryToken问题&#xff0c;由于对这一块的理解也并不深入&#xff0c;所以就去研究了一番&#xff0c;梳理了一下。 在梳理之前&#xff0c;还需要简单了解一下背景知识。 AntiForgeryToken 可以说是处理/预防CSRF的一种处理…

双重循环

一、什么是二重循环&#xff1f; 一个循环体内包含另一个完整的循环结构。 比如说&#xff1a; 1.while(循环条件1){ //循环操作1 while(循环条件2){ //循环操作2 } } 2.do{ //循环操作1 do{ //循环操作2 }while(循环条件2); }while(循环条件1); 3.for(循环条件1){ //循环操作1…

二维数组常用的赋值方式

静态初始化并赋值 int[][] data new int[][] { { 1, 2 }, { 2, 3 }, { 2, 3, 4 }, { 1, 2, 3, 4 } };print(data);int edges[][]{{0,1},{1,2},{1,3},{2,4},{3,4},{2,5}};动态赋值 //动态赋值int[][] data2 new int[3][2];for (int i 0; i < data2.length; i) {for (int j…

HBase体系架构说明

HBase体系架构说明&#xff01; client&#xff1a;两种—-Hbase shell 命令行接口 JavaAPI client访问Region不能直接访问&#xff0c;首先client需要先连接到zookeeper&#xff0c;zookeeper管理HMaster&#xff0c;说明&#xff0c;hdfs集群&#xff0c;在没有zookeepe…

面试中的这些坑,你踩过几个?

转载自 面试中的这些坑&#xff0c;你踩过几个&#xff1f; 01、请你做一个自我介绍 误区&#xff1a; 一般人回答这个问题过于平常&#xff0c;只说姓名、年龄、爱好、工作经验&#xff0c;这些在简历上都有。 要点&#xff1a; 简历上有的可以一两句话带过&#xff0c;…

asp.net core 编译mvc,routing,security源代码进行本地调试

因为各种原因&#xff0c;需要查看asp.net core mvc的源代码来理解运行机制等等&#xff0c;虽说源代码查看已经能很好的理解了。但是能够直接调试还是最直观的。所有就有了本次尝试。因调试设置源代码调试太辍笔&#xff0c;所以不用这个方法&#xff0c;转而使用编译源代码的…

并查集判断是否有环存在

题目描述 思路分析 代码实现 package com.atguigu.disjointSet;public class djset {public static int VERTICES6;public static void initialise(int parent[]){int i;for (i 0; i < VERTICES; i) {parent[i]-1;}}public static int find_root(int x,int parent[]){int …

进入ASP .net mvc的世界

一、mvc执行流程&#xff1a; 启动mvc项目–>Global.asax–>App_Strat–>RouteConfig–>Controllers(控制器)–>View(视图)–Index.aspx 二&#xff1a;Controller&#xff0c;控制器的代码&#xff0c;包含动作方法和业务操作 三&#xff1a;View&#xff0c;…

Visual Studio 2017更新,侧重于提高稳定性

Microsoft已对其旗舰开发软件产品Visual Studio 2017&#xff08;VS2017&#xff09;的安装程序和设置引擎做了全新设计&#xff0c;意在能快速地部署更新到VS2017。VS2017的第一个命名版本更新在VS2017首发的一个月后就可用&#xff0c;这充分体现了这一全新设计的优势所在。 …

你还在Java8中使用循环语句吗?

转载自 你还在Java8中使用循环语句吗&#xff1f; Java 8中的新功能特性改变了游戏规则。对Java开发者来说这是一个全新的世界&#xff0c;并且是时候去适应它了。 在这篇文章里&#xff0c;我们将会去了解传统循环的一些替代方案。在Java 8的新功能特性中&#xff0c;最棒…