摘要:由日志打不出引出的知識(shí)圖譜一當(dāng)我們調(diào)用的時(shí)候發(fā)生了什么目前業(yè)界日志標(biāo)配當(dāng)我們調(diào)用的的時(shí)候到底發(fā)生了什么貼一張執(zhí)行流程圖這里出現(xiàn)了一個(gè)關(guān)鍵對(duì)象如果的局部變量值為就調(diào)用父進(jìn)行日志打印結(jié)合實(shí)際場(chǎng)景解釋一下上述是某個(gè)工程的的配置文件就是配置中
由日志打不出引出的知識(shí)圖譜(一)
目前業(yè)界日志標(biāo)配slf4j + logback,當(dāng)我們調(diào)用slf4j的Logger.error()的時(shí)候到底發(fā)生了什么?貼一張Logger執(zhí)行流程圖
這里出現(xiàn)了一個(gè)關(guān)鍵對(duì)象AppenderAttachableImpl,如果Logger的局部變量值為null,就調(diào)用父Logger進(jìn)行日志打印,結(jié)合實(shí)際場(chǎng)景解釋一下
..... .....
上述是某個(gè)工程的logback.xml的配置文件,AppenderAttachableImpl就是配置中的appender元素節(jié)點(diǎn)的抽象,那么對(duì)如果Logger局部變量AppenderAttachableImpl為null,則調(diào)用父Logger,這里的父Logger就是代表ROOT節(jié)點(diǎn)的Logger實(shí)例
接下來(lái)關(guān)注另外一個(gè)問(wèn)題Logger局部變量AppenderAttachableImpl什么才為null,來(lái)看下Logger的創(chuàng)建過(guò)程,根據(jù)Logger logger = LoggerFactory.getLogger("name");定位到類ch.qos.logback.classic.LoggerContext構(gòu)造方法
在構(gòu)造方法中創(chuàng)建了ROOT Logger實(shí)例,接下來(lái)看下實(shí)際創(chuàng)建Logger實(shí)例代碼
如果loggerCache存在對(duì)應(yīng)實(shí)例則直接返回,如果ROOT-Logger.getChildByName找不到對(duì)應(yīng)name的Logger,就創(chuàng)建一個(gè)Logger
這里可以看出創(chuàng)建的Logger實(shí)例的父Logger就是ROOT-Logger,但是在創(chuàng)建的時(shí)候并沒(méi)有涉及到AppenderAttachableImpl的賦值.接下來(lái)再探索一下,AppenderAttachableImpl的賦值過(guò)程(基于SpringBoot)
直接定位到初始化類ch.qos.logback.classic.joran.action.LoggerAction
ch.qos.logback.core.joran.action.AppenderRefAction
在解析logback.xml在解析到
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68301.html
摘要:分布式架構(gòu)實(shí)踐負(fù)載均衡在網(wǎng)站創(chuàng)立初期,我們一般都使用單臺(tái)機(jī)器對(duì)臺(tái)提供集中式服務(wù),但是隨著業(yè)務(wù)量越來(lái)越大,無(wú)論是性能上還是穩(wěn)定性上都有了更大的挑戰(zhàn)。就鹿晗宣布戀情導(dǎo)致微博宕機(jī)事件淺談大型網(wǎng)站高可用性架構(gòu)中午吃飯刷著刷著微博發(fā)現(xiàn)微博突然掛了。 分布式架構(gòu)實(shí)踐——負(fù)載均衡 在網(wǎng)站創(chuàng)立初期,我們一般都使用單臺(tái)機(jī)器對(duì)臺(tái)提供集中式服務(wù),但是隨著業(yè)務(wù)量越來(lái)越大,無(wú)論是性能上還是穩(wěn)定性上都有了更大的挑...
閱讀 1124·2021-09-22 16:04
閱讀 1503·2019-08-30 15:43
閱讀 1111·2019-08-29 14:01
閱讀 3446·2019-08-26 12:19
閱讀 3362·2019-08-26 12:15
閱讀 1454·2019-08-26 12:13
閱讀 3273·2019-08-23 17:00
閱讀 1492·2019-08-23 15:38