<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      .NetCore中的日志(2)集成第三方日志工具

      .NetCore中的日志(2)集成第三方日志工具

       

      0x00 在.NetCore的Logging組件中集成NLog

      上一篇討論了.NetCore中日志框架的結構,這一篇討論一下.NetCore的Logging組件中第三方日志工具的集成。只要按照Logging組件中相關接口的要求提供相應的實現(ILogger、ILoggerProvider),然后把實現的ILoggerProvider加入到LoggerFactory就可以使用了,非常方便。這里以NLog為例進行實踐。關于NLog的詳細教程可以參考https://github.com/NLog/NLog/wiki,園子里也很多這方面的文章。這里主要說集成原理。

      NLog本身提供了一套完整的日志記錄框架,由NLog.Logger實現日志記錄,通過配置文件或代碼配置路由規則(rules)把不同name的Logger路由到不同的輸出目標(target)上。

      NLog集成到Logging組件中,一般不會做過多的配置,只是把Log方法的內容轉發到NLog中處理。日志過濾(NLog中叫路由)和輸出格式配置都在NLog中配置,Logging組件僅僅起到一個日志內容轉發的作用。

      NLog的Logger在集成到.NetCore的Logging組件中時需要做以下事情:

      1、包裝NLog.Logger為NLogLogger,并實現ILogger接口。

      把NLog.Logger包裝為NlogLogger,實現ILogger接口。在實現Log方法時把Logging組件中Log方法的參數轉化為NLog.Logger中Log方法的參數,然后調用NLog.Logger的Log方法輸出日志。

      此外,在NLog中是有自己的日志等級的,因此在記錄日志時需要把.NetCore的Logging組件中定義的日志等級轉換為NLog中的日志等級。

      2、實現ILoggerProvider接口

       

      3、添加擴展方法方便把ILoggerProvider加入到LoggerFactory中。

      有一點需要注意,NLog官方給出的示例(https://github.com/NLog/NLog.Extensions.Logging)還是像以往一樣在類中調用

      LogManager.GetCurrentClassLogger();

      方法獲取Logger,這是不科學的,實際使用中還是應該通過依賴注入的方式獲取Logger。通過在構造函數參數中注入ILogger<Class>()的方式獲取Logger,與在Class中調用GetCurrentClassLogger()方法獲取的Logger的Name是相同的,都可以正常在NLog配置文件中匹配路由規則。

      0x01 集成自己的日志工具

      了解了.NetCore中Logging框架,我們也可以嘗試自己寫一個日志記錄器并集成到Logging組件中。下面我們自己寫一個往文本文檔中記錄日志的工具,以下內容只是用于演示,實際編寫自己的日志記錄工具需要更加嚴謹。

      首先需要實現ILogger接口,Log方法直接把傳入的信息按格式輸出到文本文件:

      實現ILoggerProvider接口:

      寫一個擴展方法方便添加:

      這樣在Startup中我們就可以加入需要的所有Logger了,混合了原生的、第三方的、以及自己寫的。

      有興趣看詳細代碼的可以到:

      https://github.com/durow/NetCoreStudy/tree/master/src/LoggingStudy

      0x02 寫在最后

      關于.NetCore的Logging組件就寫到這里了,Logging組件的設計很容易集成第三方日志工具。了解Logging組件如何實現對各個不同日志工具的集成對于實際開發中日志記錄基本是沒有幫助的:(,畢竟有如此豐富的選擇,我們幾乎不需要開發自己的日志記錄工具。不過通過對Logging組件的學習,在軟件的設計方面學到了很多。也體會到了書本上很多看似沒事找事的設計模式在實際中的應用。

       


      更多內容歡迎訪問我的博客:http://www.durow.vip

      posted @ 2016-09-09 14:30  durow  閱讀(3812)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 坐盗市亚洲综合一二三区| 大桥未久亚洲无av码在线| 色妞www精品免费视频| 中文字幕永久精品国产| 吉川爱美一区二区三区视频| 日本丶国产丶欧美色综合| 日韩 一区二区在线观看| 精品一区二区不卡无码AV| 阳信县| 长腿校花无力呻吟娇喘| 国产精品一区二区三区四区 | 成人福利国产午夜AV免费不卡在线| 日本五十路熟女一区二区| 国产一区二区精品久久呦| 国产91丝袜在线播放动漫| 欧美和黑人xxxx猛交视频| 日韩成av在线免费观看| 欧美日韩国产综合草草| 午夜三级成人在线观看| 国产婷婷综合在线视频| 无码一区中文字幕| 亚洲性日韩一区二区三区| 亚洲男人第一无码av网站| 视频二区国产精品职场同事| 亚洲高清成人av在线| 亚洲色大成网站www看下面| 国产伦视频一区二区三区| 青青青视频免费一区二区| 金川县| 久久久久影院色老大2020| 自拍偷拍视频一区二区三区| 亚洲性线免费观看视频成熟| 国产乱妇无码大片在线观看| 成人精品自拍视频免费看| 国产精品黄在线观看免费| 国产亚洲午夜高清国产拍精品| 德兴市| 自拍偷拍第一区二区三区 | 亚洲成人一区| 春菜花亚洲一区二区三区| 国产成人无码AV片在线观看不卡|