<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    風行天下

    JAVA太極
    posts - 4, comments - 10, trackbacks - 0, articles - 55
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    JCL(Jakarta Commons Logging)- 介紹

    Posted on 2005-04-01 10:26 風太少 閱讀(252) 評論(0)  編輯  收藏
    1、Commons-Loggin簡介
      Jakarta Commons Logging (JCL)提供的是一個日志(Log)接口(interface),同時兼顧輕量級和不依賴于具體的日志實現工具。 它提供給中間件/日志工具開發者一個簡單的日志操作抽象,允許程序開發人員使用不同的具體日志實現工具(類似于SUN提供的JAXP)。用戶被假定已熟悉某種日志實現工具的更高級別的細節。JCL提供的接口,對其它一些日志工具,包括Log4J, Avalon LogKit, and JDK 1.4等,進行了簡單的包裝,此接口更接近于Log4J和LogKit的實現.
    2、快速入門
    ????????? JCL有兩個基本的抽象類:Log(基本記錄器)和LogFactory(負責創建Log實例)。當commons-logging.jar被加入到CLASSPATH之后,它會心可能合理地猜測你喜歡的日志工具,然后進行自我設置,用戶根本不需要做任何設置。默認的LogFactory是按照下列的步驟去發現并決定那個日志工具將被使用的(按照順序,尋找過程會在找到第一個工具時中止):
    1. 尋找當前factory中名叫org.apache.commons.logging.Log配置屬性的值
    2. 尋找系統中屬性中名叫org.apache.commons.logging.Log的值
    3. 如果應用程序的classpath中有log4j,則使用相關的包裝(wrapper)類(Log4JLogger)
    4. 如果應用程序運行在jdk1.4的系統中,使用相關的包裝類(Jdk14Logger)
    5. 使用簡易日志包裝類(SimpleLog)

    3、開發使用logging
    ????????? //在程序文件頭部import相關的類
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    ......
    //在類中獲取一個實例
    public class MYCLASS
    {
    private static Log log = LogFactory.getLog(MyCLASS.class);
    ...
     }
    日志信息被送往記錄器,如上例中的log。這個發送過程,是通過調用Log接口中定義的方法完成的,不同方法跟不同的級別聯系在一起,日志信息通過哪個級別的方法發送,就標明了日志信息的級別。org.apache.commons.logging.Log接口中定義的方法,按嚴重性由高到低的順序有:

    1. log.fatal(Object message);
    2. log.fatal(Object message, Throwable t);
    3. log.error(Object message);
    4. log.error(Object message, Throwable t);
    5. log.warn(Object message);
    6. log.warn(Object message, Throwable t);
    7. log.info(Object message);
    8. log.info(Object message, Throwable t);
    9. log.debug(Object message);
    10. log.debug(Object message, Throwable t);
    11. log.trace(Object message);
    12. log.trace(Object message, Throwable t);
    除此以外,還提供下列方法以便代碼保護.
    1. log.isFatalEnabled();
    2. log.isErrorEnabled();
    3. log.isWarnEnabled();
    4. log.isInfoEnabled();
    5. log.isDebugEnabled();
    6. log.isTraceEnabled();

      信息級別
      確保日志信息在內容上和反應問題的嚴重程度上的恰當,是非常重要的。
    1. fatal非常嚴重的錯誤,導致系統中止。期望這類信息能立即顯示在狀態控制臺上。
    2. error其它運行期錯誤或不是預期的條件。期望這類信息能立即顯示在狀態控制臺上。
    3. warn使用了不贊成使用的API、非常拙劣使用API, '幾乎就是'錯誤, 其它運行時不合需要和不合預期的狀態但還沒必要稱為 "錯誤"。期望這類信息能立即顯示在狀態控制臺上。
    4. info運行時產生的有意義的事件。期望這類信息能立即顯示在狀態控制臺上。
    5. debug系統流程中的細節信息。期望這類信息僅被寫入log文件中。
    6. trace更加細節的信息。期望這類信息僅被寫入log文件中。

    通常情況下,記錄器的級別不應低于info.也就是說,通常情況下debug的信息不應被寫入log文件中。
      工作機理
    1. 生命周期
      JCL LogFactory必須實現建立/斷開到日志工具的連接,實例化/初始化/解構一個日志工具.
    2. 異常處理
      JCL Log 接口沒有指定任何異常處理,對接口的實現必須捕獲并處理異常。

    3. 多線程
      JCL Log 和 LogFactory 的實現,必須確保任何日志工具對并行的要求.

      記錄器的設置
      JCL采用的記錄器的不同其設置內容也不同。Log4J是默認首選記錄器,對其設置可通過系統屬性(system properties)或一個屬性文件進行設置,下面是其設置參數。
    參數 值域 默認值 說明
    log4j.configuration log4j.properties 指定配置文件的名字
    log4j.rootCategory priority [, appender]* 設定根記錄器的級別
    log4j.logger<.logger.name> DEBUG, INFO, WARN, ERROR, or FATAL 設定logger.name這個記錄器的級別
    log4j.appender<.appender>.Threshold priority 指定記錄設備appender(console, files, sockets, and others)的最低級別。

    4、配置文件一般用commons-logging.properties,內設定用何種實現示例如下:
    org.apache.commons.logging.LogFactory =cn.newfm.util.log4j.ApplLog4jFactory

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


    網站導航:
     
    主站蜘蛛池模板: 57pao一国产成视频永久免费| 一区二区三区无码视频免费福利| 亚洲黄色在线观看视频| 成人久久久观看免费毛片| 免费一级大黄特色大片| 亚洲剧场午夜在线观看| 最新黄色免费网站| 亚洲网站在线免费观看| 99久久国产热无码精品免费| 亚洲成a人片在线网站| 青青草a免费线观a| 亚洲人成色在线观看| 暖暖免费高清日本中文| 一级毛片aaaaaa视频免费看 | 亚洲a∨国产av综合av下载| 国产乱码免费卡1卡二卡3卡| 亚洲av日韩av综合| 全免费A级毛片免费看网站| 美女视频黄视大全视频免费的| 99久久婷婷免费国产综合精品| 国产乱码免费卡1卡二卡3卡| 亚洲夂夂婷婷色拍WW47| 免费国产怡红院在线观看| 羞羞视频免费网站在线看| 亚洲AV美女一区二区三区| 四虎精品视频在线永久免费观看| 国产av无码专区亚洲国产精品 | 亚洲福利视频一区| 色片在线免费观看| 亚洲av最新在线观看网址| 浮力影院亚洲国产第一页| 中文字幕免费视频一| 亚洲国产欧美国产综合一区| 亚洲AⅤ视频一区二区三区| 99久久婷婷免费国产综合精品| 免费人成视网站在线观看不卡| 国产成人精品日本亚洲专| 国产精品国产免费无码专区不卡| 亚洲精品二三区伊人久久| 亚洲精品视频免费| 国产免费久久精品99re丫y|