時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
?? log4j是一個(gè)通用的log工具。使用log4j的時(shí)候我們通常設(shè)置properties文件或者xml文件來進(jìn)行l(wèi)og的配置。那么log4j對(duì)配置文件的加載過程是什么樣的呢?下面以分析log4j的source的形式來進(jìn)行說明。
?? 一,properties文件
?? 當(dāng)用properties文件進(jìn)行配置的時(shí)候,對(duì)應(yīng)的src為PropertyConfigurator。這個(gè)PropertyConfigurator class繼承了接口 Configurator,并實(shí)現(xiàn)doConfigure方法。
?? 對(duì)properties文件進(jìn)行讀取的過程如下
?? 1,把properties文件的內(nèi)容讀取到Properties對(duì)象中保存。
?? 使用方法:
??? Properties props = new Properties();
?? FileInputStream istream = null;
?? istream = new FileInputStream(configFileName);
?? props.load(istream);
?? istream.close();
?? 2,對(duì)讀到的內(nèi)容進(jìn)行解析
?? 2.1進(jìn)行是否輸出內(nèi)部異常信息的判斷 ,通過是否指定參數(shù)"log4j.debug"來判斷
?? 2.2進(jìn)行是否復(fù)位所有配置信息的判斷,通過是否指定參數(shù)"log4j.reset"來判斷
?? 2.3進(jìn)行是否設(shè)定廣域log的level的判斷,通過是否指定參數(shù)"log4j.threshold"來判斷
?? 2.4進(jìn)行RootLogger的設(shè)定
?? 2.4.1 取得RootLogger
?? 2.4.2 取得RootLogger對(duì)應(yīng)的Appender
?? 2.4.2.1取得Appender的Layout,將Layout追加到Appender中
?//1 設(shè)定Layout的屬性
//2 設(shè)定Appender的屬性
?? 2.4.3 將Appender追加到RootLogger中
?? 2.5進(jìn)行LoggerFactory的設(shè)定
?? 2.5.1 取得指定參數(shù)"log4j.loggerFactory"的值,并生成Factory類的實(shí)例
?? 2.5.2 設(shè)定生成Factory類的實(shí)例的屬性
?? 2.6進(jìn)行RootLogger以外其他Logger的設(shè)定
?? 2.6.1取得其他的category
???? 2.6.1.1 設(shè)置category的level屬性
???? 2.6.1.2 取得category對(duì)應(yīng)的Appender
?? 取得Appender的Layout,將Layout追加到Appender中
???? //1 設(shè)定Layout的屬性
//2 設(shè)定Appender的屬性
???? 2.6.1.3 設(shè)置category的是否繼承parent的屬性
???? 2.6.1.4 設(shè)置category的輸出log的渲染類
二,xml文件
當(dāng)用xml文件進(jìn)行配置的時(shí)候,對(duì)應(yīng)的src為DOMConfigurator。這個(gè)DOMConfigurator class繼承了接口
Configurator,并實(shí)現(xiàn)doConfigure方法。
對(duì)xml文件進(jìn)行讀取的過程,與對(duì)properties文件進(jìn)行解析的內(nèi)容大致相同.不再重復(fù).
不同點(diǎn)有以下幾個(gè)地方
? //1 使用DOMAPI讀取xml文件,并從dom中取得各個(gè)node的內(nèi)容.
? //2 屬性的名稱不一樣
關(guān)鍵詞標(biāo)簽:log4j,properties,xml
相關(guān)閱讀
熱門文章 網(wǎng)頁制作與CSS的UTF-8和GB2312編碼問題 網(wǎng)頁設(shè)計(jì)中常用的19個(gè)Web安全字體 關(guān)于iframe內(nèi)頁高度自適應(yīng) 良好用戶體驗(yàn)應(yīng)避開15種情況
人氣排行 log4j之配置文件加載過程分析-properties文件和xml文件 提高網(wǎng)頁打開速度的一些小技巧 網(wǎng)頁制作與CSS的UTF-8和GB2312編碼問題 關(guān)于iframe內(nèi)頁高度自適應(yīng) 網(wǎng)頁設(shè)計(jì)中常用的19個(gè)Web安全字體 網(wǎng)頁設(shè)計(jì)中的各種分辨率下的標(biāo)準(zhǔn)尺寸 網(wǎng)頁設(shè)計(jì)常用Javascript經(jīng)典代碼 手把手教你制作Google Sitemap