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