記錄點滴

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            10 Posts :: 1 Stories :: 1 Comments :: 0 Trackbacks
          log4j是一個通用的log工具。使用log4j的時候我們通常設置properties文件或者xml文件來進行log的配置。
          那么log4j對配置文件的加載過程是什么樣的呢?下面以分析log4j的source的形式來進行說明。
           一,properties文件 當用properties文件進行配置的時候,對應的src為PropertyConfigurator。這個PropertyConfigurator class繼承了接口 Configurator,并實現doConfigure方法。 對properties文件進行讀取的過程如下
          1,把properties文件的內容讀取到Properties對象中保存。 使用方法: Properties props = new Properties(); FileInputStream istream = null; istream = new FileInputStream(configFileName); props.load(istream); istream.close();
          2,對讀到的內容進行解析
          2.1進行是否輸出內部異常信息的判斷 ,通過是否指定參數“log4j.debug”來判斷
           2.2進行是否復位所有配置信息的判斷,通過是否指定參數“log4j.reset”來判斷
           2.3進行是否設定廣域log的level的判斷,通過是否指定參數“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 取得指定參數“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,并實現doConfigure方法。
          對xml文件進行讀取的過程,與對properties文件進行解析的內容大致相同.不再重復. 不同點有以下幾個地方
          //1 使用DOMAPI讀取xml文件,并從dom中取得各個node的內容.
           //2 屬性的名稱不一樣
          posted on 2012-05-03 20:27 liuliang 閱讀(4469) 評論(1)  編輯  收藏

          Feedback

          # re: log4j之配置文件加載過程分析-properties文件和xml文件 2011-01-06 17:46 CoderDream
          就不能排版一下么?!  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 七台河市| 工布江达县| 凭祥市| 桐梓县| 亳州市| 光山县| 齐齐哈尔市| 石台县| 岢岚县| 天柱县| 垫江县| 瑞金市| 彰武县| 玛沁县| 泰兴市| 南华县| 乌拉特中旗| 东乡族自治县| 九龙城区| 宜州市| 阿拉善左旗| 贺州市| 黄大仙区| 光山县| 云安县| 西乡县| 灵台县| 卓资县| 沁水县| 突泉县| 新乐市| 荃湾区| 榕江县| 娄底市| 威海市| 维西| 平江县| 嘉善县| 宁强县| 怀宁县| 区。|