.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

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

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

相关文章

51nod1551-集合交易【hall定理,最大权闭合图,网络流】

正题 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId1551 题目大意 nnn个集合,nnn个物品,每个集合有一些物品,一个价钱。满足任意kkk个集合都有kkk种不同的物品。 要求一个最低的价格来购买集合且购买集合数等于里面不同…

HDU5874 - Friends and Enemies

HDU5874 - Friends and Enemies 题意:m个人,n种颜色的石头,两个人不是朋友就是敌人,朋友之间至少有一个同种颜色的石头,敌人之间不能有相同的石头,问用最多种的石头的情况下,n能否满足要求 做法…

纪中C组模拟赛总结(2019.7.9)

成绩: 注:rankrankrank是有算其他dalaodalaodalao的 rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3T4T4T4111hkyhkyhky400400400100100100100100100100100100100100100303030tjhtjhtjh240240240100100100303030101010100100100696969fyfy…

将 ASP.NET Core 2.0 项目升级至 ASP.NET Core 2.1.3X

阅读文本大概需要 3.3 分钟。在上一篇文章《ASP.Net Core 运行错误 Http Error 502.5 解决办法》的最后有提到说,最推荐的升级办法是从2.0升级到2.1X版本.操作如下项目的例子直接使用https://github.com/52ABP/52ABP.School 作为对象,毕竟他正好是.NET C…

CF55D-Beautiful numbers【数位dp】

正题 题目链接:https://www.luogu.com.cn/problem/CF55D 题目大意 求[l,r][l,r][l,r]中有多少个数使得它可以被它的所有非000位整除。 解题思路 因为这些数的lcmlcmlcm一定是lcm(1,2,3,4,5,6,7,8,9,10)2520lcm(1,2,3,4,5,6,7,8,9,10)2520lcm(1,2,3,4,5,6,7,8,9,10)2520的约数…

【DP】合唱队形(jzoj 1122)

合唱队形 jzoj 1122 题目大意: 有n个人,按一定的顺序站成一排,最少减去多少个人可以使队列以一个人为中心,两边分别递减 输入样例 8 186 186 150 200 160 130 197 220输出样例 4数据范围 对于50%的数据&#xf…

HDU5877 - Weak Pair

HDU5877 - Weak Pair 做法&#xff1a;dfs的时候&#xff0c;用树状数组维护当前节点到跟节点的权值树状数组&#xff0c;离散化一下即可&#xff0c;类似统计树上逆序对。此题数据范围好像是假的&#xff0c;节点数开到200000可过。 #include <bits/stdc.h> #define pb …

jzoj5248-[NOIP2017提高A组模拟8.10]花花的聚会【倍增,树形dp】

正题 题目链接:https://gmoj.net/senior/#main/show/5248 题目大意 nnn个点的一棵树&#xff0c;有mmm张票(v,k,w)(v,k,w)(v,k,w)表示可以在点vvv买&#xff0c;可以走kkk步以内&#xff0c;价格为www。 一个时间只能有一个票&#xff0c;每次询问一个点到根节点需要的最少票…

【高精】Gift(jzoj(gz) 1763)

Gift jzoj&#xff08;gz&#xff09; 1763 题目大意&#xff1a; 有9个数&#xff1a;a,b,c……i,计算出2a2b……2hi2^a2^b……2^hi2a2b……2hi 输入样例 1 21 30 0 0 0 0 0 0 2147483647输出样例 3223322629数据范围 40% t<1000 100% t<100000 a,b,c,d,e,f,g,h&…

.net core 多版本如何选择

在讲述.net core多版本之前&#xff0c;我们先理解一下.net core sdk与.net core runtime之前的联系与区别&#xff0c;根据官网的解释我们可以简单地理解为&#xff1a;sdk是在开发过程中进行使用&#xff0c;而runtime是在项目发布后作为运行环境进行安装的&#xff0c;runti…

P3226-[HNOI2012]集合选数【状压dp】

正题 题目链接:https://www.luogu.com.cn/problem/P3226 题目大意 1∼n1\sim n1∼n选出一些组成集合&#xff0c;一个集合里如果有xxx则不能有2x,3x2x,3x2x,3x。求有多少合法集合。 解题思路 我们可以构造一个矩阵 13927…2618…412…8… 这样选择一个位置后它相邻的位置就不…

HDU5120 - Intersection

HDU5120 - Intersection 做法&#xff1a;答案就是\(A1 \cap B1 - A2 \cap B1 - A1 \cap B2 A2 \cap B2\)&#xff0c;圆形面积交码了好久&#xff0c;先把两个圆转到x轴上&#xff0c;大的放到原点&#xff0c;小的放在大圆的左边&#xff0c;计算一下交点坐标&#xff0c;然…

【结论】Number(jzoj(gz) 1781)

Number jzoj&#xff08;gz&#xff09; 1781 题目大意&#xff1a; 现在给出一个x&#xff0c;可以把x变为4x3或8x7&#xff0c;问最少变多少次可以把x变为1000000007的倍数 输入输出样例 输入样例#1 125000000输出样例#1 1输入样例#2 281250001输出样例#2 2输入样例…

好代码是管出来的——使用GitHub实现简单的CI/CD

软件开发一般来说是一项团队作业&#xff0c;在本系列文章开始就提到过软件的编码是由一个团队“并行”完成的&#xff0c;为了保证编码任务正常完成&#xff0c;首先引入版本控制工具来完成代码管理&#xff0c;为了保证代码质量引入了代码分析器以及代码测试。版本控制工具可…

HDU5119 - Happy Matt Friends

HDU5119 - Happy Matt Friends 做法&#xff1a;拆成两堆数&#xff0c;分别暴力出两组的所有异或值A,B&#xff0c;枚举A, 将B全部插入Trie树&#xff0c;通过枚举的数每一位的值,确定异或后构成的新树&#xff0c;然后在新树上统计比m大的值的个数即可。 #include <bits/s…

jzoj4739-[雅礼联考GDOI2017模拟9.2]Ztxz16学图论【LCT,树状数组】

正题 题目链接:https://gmoj.net/senior/#main/show/4739 题目大意 nnn个点mmm条边的一张图&#xff0c;qqq次询问一个区间的边可以形成多少连通块。 解题思路 询问按照右端点排序&#xff0c;然后边权就是编号&#xff0c;这样询问最大生成树后判断有多少个边权大于lll即可。…

【状压DP】最优配对问题(jzoj 3420)

最优配对问题 jzoj 3420 题目大意&#xff1a; 在平面上有n个点&#xff0c;现在要把他们拼成n/2对&#xff0c;拼接两个点的代价是他们的平面距离&#xff0c;现在问代价总和最小是多少 输入样例 4 8730 9323 -3374 3929 -7890 -6727 1257 4689输出样例 20366.60数据范围…

数据告诉你:中年并不只有危机,创业或许正当时

人们普遍认为最成功的企业家都是年轻人。比尔?盖茨、史蒂夫?乔布斯和马克?扎克伯格都在自己20岁出头的时候&#xff0c;建立起了日后改变世界的伟大公司。这些著名的案例是否反映了一种可以被普遍推广的模式呢&#xff1f;风险投资机构和媒体似乎赞成一点。我们分析了过去十…

HDU6223 - Infinite Fraction Path

HDU6223 - Infinite Fraction Path 做法1&#xff1a;枚举每个串取最大值&#xff0c;只用判断前20位&#xff0c;如果前20位都相同&#xff0c;可以认定两个串相同。因为很容易进入循环节&#xff0c;且循环节不太大。 #include <bits/stdc.h> #define pb push_back typ…

P4219-[BJOI2014]大融合【LCT】

正题 题目链接:https://www.luogu.com.cn/problem/P4219 题目大意 nnn个点&#xff0c;每次有操作 加入一条边&#xff0c;保证该边连接了两个不同的连通块询问经过一条边的路径数量 解题思路 考虑如何用LCTLCTLCT维护虚子树信息&#xff0c;只要在断边的时候把虚子树的信息…