亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

.net core整合log4net的解決方案

 更新時間:2018年07月02日 10:14:07   作者:KING_GUOKUN  
這篇文章主要給大家介紹了關(guān)于.net core整合log4net的解決方案,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用.net core具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

概述

log4net是.Net下一個非常優(yōu)秀的開源日志記錄組件。log4net記錄日志的功能非常強(qiáng)大。它可以將日志分不同的等級,以不同的格式,輸出到不同的媒介。

背景

前兩天,曾經(jīng)的一個同事咨詢我,怎樣將log4net以中間件的形式整合到core里邊去。我不假思索的回答,這種問題應(yīng)該有人做過吧,他說沒有。于是,我去博客園搜了下,發(fā)現(xiàn)還真沒有,全部都是傳統(tǒng).NET那一套,直接LogManager.GetLogger,于是趁著周末有時間,決定調(diào)研下這個問題。去巨硬官網(wǎng)快速瀏覽了下,擴(kuò)展第三方日志的核心就在于兩個接口:ILogger和ILoggerProvider。于是建好解決方案,刷刷刷實現(xiàn)這兩個接口,實現(xiàn)差不多了查相關(guān)資料時,猛然發(fā)現(xiàn),臥槽,已經(jīng)有國外同仁實現(xiàn)過了,我尼瑪?shù)男量鄬懓胩?,這下徹底垮了。。。

切換四路

本著偷懶、鄙視瞎造輪子/裝逼的心態(tài), 直接把解決方案切換到開源實現(xiàn)。實際上順便看了下第三方實現(xiàn)源碼,四路也是一致的,實現(xiàn)那兩個接口。

解決方案如下:

包引用如下:

最上邊的不多說,第二個別問我,第三個就是core整合log4net的主角。關(guān)于這個,得特別說明下,最新版本是2.2.1,但我并沒有引用最新的,而是2.1.0,因為目前有些第三方包最新版本引用的原子包是最新的,而上邊第二個鬼東東Microsoft.AspNetCore.App這個框架包底層的原子包卻并不是,所以如果引用最新的第三方包,很可能會報某個原子包依賴版本不對的錯誤。解決方案有二:1、哪個包報錯,你單獨安裝哪個原子包的最新版本;2、切換第三方包的版本到較次,找到能夠兼容當(dāng)前Microsoft.AspNetCore.App的實現(xiàn)。解決方案1的問題是,你更新了這個原子包,它的依賴包又出錯,你更新了它的依賴的依賴,它的依賴的依賴的依賴又出錯。。。所以,方便起見,我直接用了Microsoft.Extensions.Logging.Log4Net.AspNetCore的較低版本。

log4net.config不再截圖或上代碼,跟以前的德行沒啥兩樣。

接下來,注冊log4net:

圖中,前兩行的作用是過濾掉System和Microsoft開頭的命名空間下的組件產(chǎn)生的警告級別一下的日志,實際上主要就是一些框架性日志。第三行便是注冊log4net中間件。

接下來新建控制器,注入日志實踐下效果:

上圖兩個紅框,上邊一個是構(gòu)造器注入日志接口,下邊是調(diào)用日志組件記錄日志。

好,接下來我們?nèi)タ纯聪到y(tǒng)產(chǎn)生的日志,先調(diào)用:

控制臺窗口:

OK,日志已經(jīng)輸出成功,接下來,我們看關(guān)鍵性的輸出到文件:

看到?jīng)]有,日志已經(jīng)成功經(jīng)由log4net輸出到文件。

總結(jié)

感覺沒什么好總結(jié)的,.net core提供的擴(kuò)展已經(jīng)很開放了,雖然log4net目前比較操蛋,但這對咱大部分.NET開發(fā)者來說應(yīng)該都不是事兒。

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論