.Net Core中的日志组件(Logging)
1、介绍
Logging组件是微软实现的日志记录组件包括控制台(Console)、调试(Debug)、事件日志(EventLog)和TraceSource,但是没有实现最常用用的文件记录日志功能(可以用其他第三方的如NLog、Log4Net。之前写过NLog使用的文章)。
2、默认配置
新建.Net Core Web Api项目,添加下面代码。
运行结果如下:
我刚开始接触的时候,我就有一个疑问我根本没有配置关于Logger的任何代码,仅仅写了注入,为什么会起作用呢?最后我发现其实是在Program类中使用了微软默认的配置。
下面为CreateDefaultBuilder方法的部分源码,整个源码在 https://github.com/aspnet/MetaPackages,可以看出在使用模板创建项目的时候,默认添加了控制台和调试日志组件,并从appsettings.json中读取配置。
3、建立自己的Logging配置
首先修改Program类
修改Startup类如下面,此类的执行顺序为 Startup构造函数 > ConfigureServices > Configure
这种结构就比较清晰明了。
4、Logging源码解析
三种配置其实都是为了注入日志相关的服务,但是调用的方法稍有不同。现在我们以第二种配置来详细看看其注入过程。首先调用AddLogging方法,其实现源码如下:
接着会调用AddConfiguration
下面来看打印日志的具体实现:
下面具体看一下Console的打印实现:
首先ConsoleLogger实现了ILogger的Log方法,并在方法中调用WriteMessage方法
下面看日志被放入队列后的具体实现:
原文地址:https://www.cnblogs.com/MicroHeart/p/9341286.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
.Net Core中的日志组件(Logging)相关推荐
- .NET Core中的验证组件FluentValidation的实战分享
今天有人问我能不能出一篇FluentValidation的教程,刚好今天在实现我们的.NET Core实战项目之CMS的修改密码部分的功能中有用到FluentValidation,所以就以修改用户密码 ...
- Asp.Net Core中利用Seq组件展示结构化日志功能
在一次.Net Core小项目的开发中,掌握的不够深入,对日志记录并没有好好利用,以至于一出现异常问题,都得跑动服务器上查看,那时一度怀疑自己肯定没学好,不然这一块日志不可能需要自己扒服务器日志来查看 ...
- KSO-netcore 中使用日志组件Nlog
简介 在所有的应用程序中,日志功能是不可或缺的模块,我们可以根据日志信息进行调试.查看产生的错误信息,在ASP.NET Core中我们可以使用log4net或者NLog日志组件来实现记录日志的功能,这 ...
- .net中,日志组件 Nlog,SerialLog, Log4Net的用法
源码:https://download.csdn.net/download/helldoger/85778816 以.NET6 Winform为例 <Project Sdk="Micr ...
- Python项目中 封装日志模块logging 及快速调用方法
前言 在 Python 中,可以直接用自带的 logging 模块来记录日志,但是在使用时我们需要配置一些 Handler.Formatter 来进行一些处理,比如把日志输出到不同的位置,或者设置一个 ...
- 在 ASP.NET Core 中使用 Serilog 使用 Fluentd 将日志写入 Elasticsearch
在 ASP.NET Core 中使用 Serilog 使用 Fluentd 将日志写入 Elasticsearch 原文来自:https://andrewlock.net/writing-logs-t ...
- ASP.NET Core 源码学习之 Logging[2]:Configure
在上一章中,我们对 ASP.NET Logging 系统做了一个整体的介绍,而在本章中则开始从最基本的配置开始,逐步深入到源码当中去. 默认配置 在 ASP.NET Core 2.0 中,对默认配置做 ...
- asp.net core 集成 log4net 日志框架
asp.net core 集成 log4net 日志框架 Intro 在 asp.net core 中有些日志我们可能想输出到数据库或文件或elasticsearch等,如果不自己去实现一个 Logg ...
- 深入源码理解.NET Core中Startup的注册及运行
开发.NET Core应用,直接映入眼帘的就是Startup类和Program类,它们是.NET Core应用程序的起点.通过使用Startup,可以配置化处理所有向应用程序所做的请求的管道,同时也可 ...
最新文章
- git flow版本
- ETH Zurich提出新型网络「ROAD-Net」,解决语义分割域适配问题
- python setup用法_python的构建工具setup.py的方法使用示例
- python mkl freebsd_freebsd下之简单安装python
- 幼儿园故事导入语案例_幼儿园小班安全教案
- CTF入门--题目介绍
- ionic 父子组件传值
- nginx利用try_files实现多个源
- Add library ‘Maven: ..to classpath
- 递增的整数序列链表的插入_leetcode673_go_最长递增子序列的个数
- 全国省份城市区域代码
- Mac制作映像(dmg)文件详细步骤
- 公司研制的CPU卡燃气表正式投放北京市场
- mysql 8.0.22详细安装步骤
- 计算机文献检索语言,文献检索语言
- 华为会强迫升级鸿蒙,华为手机升级鸿蒙系统好用吗
- 【福利贴】教你如何移动联通电信免流
- 数据分析-用python分析中国五大城市的PM2.5值(ols建立回归模型)
- 阿里巴巴招募AI鉴黄体验官,日薪1000,小姐姐优先,快看看你是否符合
- Rstudio永久修改当前工作路径