1. 程式人生 > >跟我一起學.NetCore之日誌(Log)模型核心

跟我一起學.NetCore之日誌(Log)模型核心

**前言** 魯迅都說:沒有日誌的系統不能上線(魯迅說:這句我沒說過,但是在理)!日誌對於一個系統而言,特別重要,不管是用於事務審計,還是用於系統排錯,還是用於安全追蹤.....都扮演了很重要的角色;之前有很多第三方的日誌框架也很給力,如Log4Net、NLog和Serilog等,在.NetCore中也集成了日誌模型,使用便捷,同時很方便的與第三方日誌框架進行整合擴充套件; **正文** 例項演示之前,先了解一下日誌級別,後續如果不想輸出全部日誌,可以通過日誌級別進行過濾,同時通過日誌級別可以標註日誌內容的重要程度: ```c# namespace Microsoft.Extensions.Logging { // 日誌級別從下往上遞增,所以根據級別可以過濾掉低級別的日誌資訊 public enum LogLevel { Trace, Debug, Information, Warning, Error, Critical, None } } ``` 來一個控制檯程式例項演示: ![img](https://i.loli.net/2020/08/27/P4NDIyf5aCS3Z2R.png) 執行結果: ![img](https://i.loli.net/2020/08/27/S4JNqriTmEOwIKP.png) 咋樣,使用還是依舊簡單,這裡是控制檯程式,還需要寫配置框架和依賴注入相關的程式碼邏輯,如果在WebAPI專案,直接就可以使用日誌記錄了,如下: ![img](https://i.loli.net/2020/08/27/xogNpPCJV2rQSG7.png) 對於WebAPI專案而言,在專案啟動流程分析的時候,就提到內部已經註冊了相關服務了,所以才能這樣如此簡單的使用; 難道日誌就這樣結束了嗎?猜想看到這的小夥伴也不甘心,是的,得進一步瞭解,不需要特別深入,但至少得知道關鍵嘛,對不對? 老規矩,程式中能看到日誌相關點,當然就從這開始,看看是如何註冊日誌啊相關服務的: ![img](https://i.loli.net/2020/08/27/82Fm9u6bkXCteM7.png) 對應程式碼: ```c# namespace Microsoft.Extensions.DependencyInjection { // IServiceCollection的擴充套件方法,用於註冊日誌相關服務 public static class LoggingServiceCollectionExtensions { public static IServiceCollection AddLogging(this IServiceCollection services) { return services.AddLogging(delegate { }); } // 核心方法,上面的方法就是呼叫下面這個 public static IServiceCollection AddLogging(this IServiceCollection services, Action