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

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

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

    Java, Only Java!

    統計

    留言簿(20)

    積分與排名

    好友空間

    文檔技巧

    閱讀排行榜

    評論排行榜

    Apusic AS的Web應用中調用commons-logging的流程

    上文描述了如何在Apusic AS的Web應用中調用Log4J,有些朋友會覺得Log4J使用前還需要初始化比較麻煩,還有些朋友會說“怎么你這個Log4J使用起來那么復雜,我們的項目都沒有那么過程呀?”,那是因為許多Web應用中是用Java commons-logging(JCL)+Log4J的,如果采用JCL+Log4J就不需要初始化了。

    那么為什么有了Log4J又有JCL呢?是因為SUN的JDK 1.4中自帶有日志框架,Log4J是Apache提供的日志框架,為了擴展應用的兼容性,保證應用可以無縫切換到不同的日志框架,因此JCL提供的是日志系統的接口,通過給工廠接口提供不同的實現類,從而保證與不同日志框架的兼容。同時,為了保證系統的有效性,還提供了一個非常簡單的日志框架實現,以便沒有外接其他日志框架時可以使用自帶的。

    那么為什么JCL+Log4J就不需要初始化了呢?這要從JCL的執行流程說起。當應用執行類似以下代碼時:

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

    public class LoggingDemo {
    ??? private static Log log = LogFactory.getLog(LoggingDemo.class);
    ??? // ...
    }
    LogFactory.getLog()函數會啟動一個搜索過程,找出底層日志記錄功能的實現,具體的發現過程在下面列出:

      ⑴ Commons的Logging首先在CLASSPATH中尋找一個commons-logging.properties文件。這個屬性文件至少定義org.apache.commons.logging.Log屬性,它的值應該是實現Log接口的完整限定名稱。

      ⑵ 如果上面的步驟失敗,Commons的Logging接著檢查系統屬性org.apache.commons.logging.Log,以便找到實現Log接口的完整限定名稱。屬性可以通過服務器啟動時參數配置,或者在代碼中使用System.setProperty()函數操作,具體可以參考附件。

      ⑶ 如果找不到org.apache.commons.logging.Log系統屬性,Logging接著在CLASSPATH中尋找log4j的類。如果找到了,Logging就假定應用要使用的是log4j。log4j本身的屬性需要按照框架配置文件定義的方式進行,一般是通過log4j.properties文件正確配置。

      ⑷ 如果上述查找均不能找到適當的Logging API,但應用程序正運行在JRE 1.4或更高版本上,則默認使用JRE 1.4的日志記錄功能。

      ⑸ 最后,如果上述操作都失敗,則應用將使用內建的SimpleLog。SimpleLog把所有日志信息直接輸出到System.err。

    了解了以上的過程就會明白為什么JCL+Log4J不再需要初始化,使用JCL+Log4J只需要在WEB-INF/lib下放置commons-logging.jar和log4j.jar包,在WEB-INF/classes下放置log4j.properties和commons-logging.properties(可選)文件,就可以在程序中隨意的使用了。

    為了方便大家了解詳細情況,附件為Apusic下的一個使用案例。同樣是個Servlet文件,只需要輸入對Servlet進行訪問就可以看到日志輸出的全過程。
    附件下載地址:http://zhuyuanxiang.javaeye.com/topics/download/e67caefb-2e23-3e97-b00b-bf8bd6dc6358

    posted on 2008-06-14 18:12 zYx.Tom 閱讀(1301) 評論(0)  編輯  收藏 所屬分類: 1.Java世界

    主站蜘蛛池模板: 亚洲欧洲成人精品香蕉网| 男女交性永久免费视频播放| 亚洲日韩欧洲乱码AV夜夜摸| 日本精品久久久久久久久免费| 国产一区在线观看免费| 色婷婷亚洲一区二区三区| 日本免费电影一区| www亚洲精品久久久乳| 亚洲AV无码乱码在线观看性色扶| 免费人成大片在线观看播放| 亚洲一区视频在线播放| 黄色网站软件app在线观看免费| 国产亚洲无线码一区二区| 久久爰www免费人成| 亚洲最大黄色网址| 性色av无码免费一区二区三区| 亚洲精品国产综合久久久久紧| 一级毛片直播亚洲| 日本免费A级毛一片| 亚洲成人免费在线观看| 成人免费无码大片a毛片| 美女视频黄频a免费大全视频| 中文字幕专区在线亚洲| 久久永久免费人妻精品下载| 国产v亚洲v天堂a无| 免费成人黄色大片| 亚洲成人免费在线| 亚洲乱妇老熟女爽到高潮的片| 亚洲精品视频在线观看你懂的| 人妻无码一区二区三区免费| 亚洲综合欧美色五月俺也去| 亚洲综合色视频在线观看| 久久精品无码专区免费东京热| 亚洲a∨无码精品色午夜| 久久九九亚洲精品| 成人毛片18女人毛片免费| 久久久久久久国产免费看 | AAA日本高清在线播放免费观看| 亚洲熟妇av一区二区三区下载 | 亚洲精品无码精品mV在线观看| 日韩亚洲国产高清免费视频|