日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Jakarta Commons Logging学习笔记

發(fā)布時間:2025/3/21 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jakarta Commons Logging学习笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、Commons-Loggin簡介


  Jakarta Commons Logging (JCL)提供的是一個日志(Log)接口(interface),同時兼顧輕量級和不依賴于具體的日志實現(xiàn)工具。 它提供給中間件/日志工具開發(fā)者一個簡單的日志操作抽象,允許程序開發(fā)人員使用不同的具體日志實現(xiàn)工具。用戶被假定已熟悉某種日志實現(xiàn)工具的更高級別的細(xì)節(jié)。JCL提供的接口,對其它一些日志工具,包括Log4J, Avalon LogKit, and JDK 1.4等,進(jìn)行了簡單的包裝,此接口更接近于Log4J和LogKit的實現(xiàn).

2、快速入門


  JCL有兩個基本的抽象類:Log(基本記錄器)和LogFactory(負(fù)責(zé)創(chuàng)建Log實例)。當(dāng)commons-logging.jar被加入到CLASSPATH之后,它會心可能合理地猜測你喜歡的日志工具,然后進(jìn)行自我設(shè)置,用戶根本不需要做任何設(shè)置。默認(rèn)的LogFactory是按照下列的步驟去發(fā)現(xiàn)并決定那個日志工具將被使用的(按照順序,尋找過程會在找到第一個工具時中止):
  • 尋找當(dāng)前factory中名叫org.apache.commons.logging.Log配置屬性的值
  • 尋找系統(tǒng)中屬性中名叫org.apache.commons.logging.Log的值
  • 如果應(yīng)用程序的classpath中有l(wèi)og4j,則使用相關(guān)的包裝(wrapper)類(Log4JLogger)
  • 如果應(yīng)用程序運行在jdk1.4的系統(tǒng)中,使用相關(guān)的包裝類(Jdk14Logger)
  • 使用簡易日志包裝類(SimpleLog)

  • 3、開發(fā)使用logging


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

  • log.fatal(Object message);
  • log.fatal(Object message, Throwable t);
  • log.error(Object message);
  • log.error(Object message, Throwable t);
  • log.warn(Object message);
  • log.warn(Object message, Throwable t);
  • log.info(Object message);
  • log.info(Object message, Throwable t);
  • log.debug(Object message);
  • log.debug(Object message, Throwable t);
  • log.trace(Object message);
  • log.trace(Object message, Throwable t);
  • 除此以外,還提供下列方法以便代碼保護(hù).
  • log.isFatalEnabled();
  • log.isErrorEnabled();
  • log.isWarnEnabled();
  • log.isInfoEnabled();
  • log.isDebugEnabled();
  • log.isTraceEnabled();

  •   信息級別
      確保日志信息在內(nèi)容上和反應(yīng)問題的嚴(yán)重程度上的恰當(dāng),是非常重要的。
  • fatal非常嚴(yán)重的錯誤,導(dǎo)致系統(tǒng)中止。期望這類信息能立即顯示在狀態(tài)控制臺上。
  • error其它運行期錯誤或不是預(yù)期的條件。期望這類信息能立即顯示在狀態(tài)控制臺上。
  • warn使用了不贊成使用的API、非常拙劣使用API, '幾乎就是'錯誤, 其它運行時不合需要和不合預(yù)期的狀態(tài)但還沒必要稱為 "錯誤"。期望這類信息能立即顯示在狀態(tài)控制臺上。
  • info運行時產(chǎn)生的有意義的事件。期望這類信息能立即顯示在狀態(tài)控制臺上。
  • debug系統(tǒng)流程中的細(xì)節(jié)信息。期望這類信息僅被寫入log文件中。
  • trace更加細(xì)節(jié)的信息。期望這類信息僅被寫入log文件中。

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

  • 多線程
    JCL Log 和 LogFactory 的實現(xiàn),必須確保任何日志工具對并行的要求.

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

    轉(zhuǎn)載于:https://www.cnblogs.com/licheng/archive/2008/08/23/1274592.html

    總結(jié)

    以上是生活随笔為你收集整理的Jakarta Commons Logging学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。