国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

由日志打不出引出的知識圖譜(一)

FullStackDeveloper / 2005人閱讀

摘要:由日志打不出引出的知識圖譜一當我們調用的時候發生了什么目前業界日志標配當我們調用的的時候到底發生了什么貼一張執行流程圖這里出現了一個關鍵對象如果的局部變量值為就調用父進行日志打印結合實際場景解釋一下上述是某個工程的的配置文件就是配置中

由日志打不出引出的知識圖譜(一)
當我們調用Logger.error的時候發生了什么

目前業界日志標配slf4j + logback,當我們調用slf4j的Logger.error()的時候到底發生了什么?貼一張Logger執行流程圖

這里出現了一個關鍵對象AppenderAttachableImpl,如果Logger的局部變量值為null,就調用父Logger進行日志打印,結合實際場景解釋一下

    


    
          .....
    

    
          .....
    

    
        
    
    
    
        
    

上述是某個工程的logback.xml的配置文件,AppenderAttachableImpl就是配置中的appender元素節點的抽象,那么對如果Logger局部變量AppenderAttachableImplnull,則調用父Logger,這里的父Logger就是代表ROOT節點的Logger實例

接下來關注另外一個問題Logger局部變量AppenderAttachableImpl什么才為null,來看下Logger的創建過程,根據Logger logger = LoggerFactory.getLogger("name");定位到類ch.qos.logback.classic.LoggerContext構造方法

在構造方法中創建了ROOT Logger實例,接下來看下實際創建Logger實例代碼

如果loggerCache存在對應實例則直接返回,如果ROOT-Logger.getChildByName找不到對應nameLogger,就創建一個Logger

這里可以看出創建的Logger實例的父Logger就是ROOT-Logger,但是在創建的時候并沒有涉及到AppenderAttachableImpl的賦值.接下來再探索一下,AppenderAttachableImpl的賦值過程(基于SpringBoot)
直接定位到初始化類ch.qos.logback.classic.joran.action.LoggerAction

ch.qos.logback.core.joran.action.AppenderRefAction

在解析logback.xml在解析到元素的時候會創建相應Logger實例,并且如果有子元素,就給實例的AppenderAttachableImpl賦值

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68301.html

相關文章

  • 架構

    摘要:分布式架構實踐負載均衡在網站創立初期,我們一般都使用單臺機器對臺提供集中式服務,但是隨著業務量越來越大,無論是性能上還是穩定性上都有了更大的挑戰。就鹿晗宣布戀情導致微博宕機事件淺談大型網站高可用性架構中午吃飯刷著刷著微博發現微博突然掛了。 分布式架構實踐——負載均衡 在網站創立初期,我們一般都使用單臺機器對臺提供集中式服務,但是隨著業務量越來越大,無論是性能上還是穩定性上都有了更大的挑...

    Pink 評論0 收藏0

發表評論

0條評論

FullStackDeveloper

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<