.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 TDD 前传: 编写
- 下一篇: 将 ASP.NET Core 2.0 项