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

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

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

    Java, Only Java!

    統(tǒng)計(jì)

    留言簿(20)

    積分與排名

    好友空間

    文檔技巧

    閱讀排行榜

    評(píng)論排行榜

    Apusic AS的Web應(yīng)用中調(diào)用commons-logging的流程

    上文描述了如何在Apusic AS的Web應(yīng)用中調(diào)用Log4J,有些朋友會(huì)覺得Log4J使用前還需要初始化比較麻煩,還有些朋友會(huì)說(shuō)“怎么你這個(gè)Log4J使用起來(lái)那么復(fù)雜,我們的項(xiàng)目都沒有那么過(guò)程呀?”,那是因?yàn)樵S多Web應(yīng)用中是用Java commons-logging(JCL)+Log4J的,如果采用JCL+Log4J就不需要初始化了。

    那么為什么有了Log4J又有JCL呢?是因?yàn)镾UN的JDK 1.4中自帶有日志框架,Log4J是Apache提供的日志框架,為了擴(kuò)展應(yīng)用的兼容性,保證應(yīng)用可以無(wú)縫切換到不同的日志框架,因此JCL提供的是日志系統(tǒng)的接口,通過(guò)給工廠接口提供不同的實(shí)現(xiàn)類,從而保證與不同日志框架的兼容。同時(shí),為了保證系統(tǒng)的有效性,還提供了一個(gè)非常簡(jiǎn)單的日志框架實(shí)現(xiàn),以便沒有外接其他日志框架時(shí)可以使用自帶的。

    那么為什么JCL+Log4J就不需要初始化了呢?這要從JCL的執(zhí)行流程說(shuō)起。當(dāng)應(yīng)用執(zhí)行類似以下代碼時(shí):

    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()函數(shù)會(huì)啟動(dòng)一個(gè)搜索過(guò)程,找出底層日志記錄功能的實(shí)現(xiàn),具體的發(fā)現(xiàn)過(guò)程在下面列出:

     ?、?Commons的Logging首先在CLASSPATH中尋找一個(gè)commons-logging.properties文件。這個(gè)屬性文件至少定義org.apache.commons.logging.Log屬性,它的值應(yīng)該是實(shí)現(xiàn)Log接口的完整限定名稱。

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

     ?、?如果找不到org.apache.commons.logging.Log系統(tǒng)屬性,Logging接著在CLASSPATH中尋找log4j的類。如果找到了,Logging就假定應(yīng)用要使用的是log4j。log4j本身的屬性需要按照框架配置文件定義的方式進(jìn)行,一般是通過(guò)log4j.properties文件正確配置。

     ?、?如果上述查找均不能找到適當(dāng)?shù)腖ogging API,但應(yīng)用程序正運(yùn)行在JRE 1.4或更高版本上,則默認(rèn)使用JRE 1.4的日志記錄功能。

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

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

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

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

    主站蜘蛛池模板: 国产精品亚洲一区二区三区在线 | 久爱免费观看在线网站| 亚洲av无码国产精品色在线看不卡| 亚洲一级免费毛片| 成人免费无码大片A毛片抽搐| 色偷偷女男人的天堂亚洲网| 18禁超污无遮挡无码免费网站国产 | 日韩精品无码免费一区二区三区 | 亚洲一卡2卡4卡5卡6卡残暴在线| 成人免费视频网站www| 久久精品国产亚洲AV忘忧草18| 91九色老熟女免费资源站| 亚洲一区二区三区高清视频| 无码免费午夜福利片在线| 亚洲精品无码专区| 亚洲成人一区二区| 九九美女网站免费| 亚洲毛片在线免费观看| 免费看AV毛片一区二区三区| 曰批免费视频播放在线看片二| 亚洲日韩激情无码一区| 30岁的女人韩剧免费观看| 亚洲人xxx日本人18| 国产免费私拍一区二区三区| 一区二区三区免费电影| 亚洲av日韩av激情亚洲| 黄页网站免费观看| 看一级毛片免费观看视频| 亚洲中文字幕视频国产| 91老湿机福利免费体验| 亚洲av无码兔费综合| 久久亚洲高清观看| 日韩精品福利片午夜免费观着| 男男gvh肉在线观看免费| 亚洲av伊人久久综合密臀性色| 一二三四影视在线看片免费| 日本黄页网址在线看免费不卡 | 精品少妇人妻AV免费久久洗澡 | 亚洲欧洲无码一区二区三区| 国产精品亚洲二区在线观看| 在线观看免费av网站|