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

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

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

    guangnian0412's BLOG

    Java in my life

    常用鏈接

    統(tǒng)計

    積分與排名

    我關注的Blog

    最新評論

    [Commons Logging]使用一個抽象的Logging接口(From Jarkata Commons Cookbook 7.10)

    ?? (Jarkata 的 Commons Logging 包現(xiàn)在已經(jīng)被用在幾乎所有的開源項目之中,它可以使你開發(fā)的系統(tǒng)工作在不同的日志框架下,包括Sun的logging框架和Apache Log4j。現(xiàn)在Commons Logging + Apache Log4j 的身影是隨處可見,Commons Logging 的易用與Log4j的強大功能形成了絕配。)

    問題:
    ??? ? 你正在寫一個可重用的代碼庫,而你不知道你的代碼在哪里并且是如何工作的。你需要一個抽象的日志接口來寫入日志信息,因為你不能確定Log4j或者是JDK 1.4 logging的存在性。

    解決:
    ??????? 通過Jakarta Commons Logging 的Log 接口來記錄信息,然后依靠Commons Logging自身來決定在運行時使用哪種具體的日志框架。下面的代碼使用了Log接口來記錄trace,debug,info,warning,error和fatal信息:
    ?1?import?org.apache.commons.logging.LogFactory;
    ?2?import?org.apache.commons.logging.Log
    ?3?
    ?4?Log?log?=?LogFactory.getLog(?"com.discursive.jccook.SomeApp"?);?
    ?5?
    ?6?if(?log.isTraceEnabled(?)?)?{
    ?7?????log.trace(?"This?is?a?trace?message"?);
    ?8?}
    ?9?
    10?if(?log.isDebugEnabled(?)?)?{
    11?????log.debug(?"This?is?a?debug?message"?);
    12?}
    13?
    14?log.info(?"This?is?an?informational?message"?);
    15?
    16?log.warn(?"This?is?a?warning"?);
    17?
    18?log.error(?"This?is?an?error"?);
    19?
    20?log.fatal(?"This?is?fatal"?);
    ????? LogFactory.getInstance() 返回一個Log接口的具體實現(xiàn),這個實現(xiàn)與底層具體的日志框架相對應。例如,如果你的系統(tǒng)是使用Apache Log4j ,一個Log4JLogger將被返回,對應于Log4J category
    com.discursive.jccook.SomeApp 。

    討論:
    ??????? 一個可重用代碼庫的開發(fā)者不能預知其代碼庫將在何時何地被用到,而現(xiàn)在有很多的日志框架可以使用,所以當開發(fā)可重用代碼庫的時候,使用Commons Logging 是非常明智的,例如Jakarta Commons 組件。當調用LogFactory.getInstance()方法的時候,Commons Logging 將通過系統(tǒng)屬性和classpath中的類庫來決定和管理適當?shù)娜罩究蚣堋τ谝粋€小型可重用組件的開發(fā)者來說,進行日志記錄只需要調用Log接口。而配置底層日志框架的負擔,就轉移到使用其組件庫的開發(fā)者身上。

    參考:
    ??????? 7.11節(jié)詳細的說明了Commons Logging在運行時確定適當日志框架的算法。

    ????

    posted on 2006-04-24 18:32 guangnian 閱讀(824) 評論(0)  編輯  收藏 所屬分類: Jakarta Commons

    主站蜘蛛池模板: 国产亚洲成人久久| 中文字幕在线观看亚洲| 日产国产精品亚洲系列| 亚洲成AV人片在线观看WWW| 亚洲91精品麻豆国产系列在线| WWW亚洲色大成网络.COM| 好久久免费视频高清| 国产精品色午夜免费视频 | 国产高清免费在线| 亚洲精品天堂在线观看| 97无码人妻福利免费公开在线视频| 一二三四影视在线看片免费| 亚洲中文字幕视频国产| 久久亚洲精品国产精品婷婷| 人禽杂交18禁网站免费| 亚洲邪恶天堂影院在线观看| 污视频网站在线观看免费| 精品女同一区二区三区免费站| 亚洲香蕉成人AV网站在线观看| 亚洲av乱码一区二区三区按摩| 免费看黄视频网站| 亚洲婷婷在线视频| 色猫咪免费人成网站在线观看| 中文字幕亚洲日本岛国片| 国产真人无码作爱视频免费| 久久精品a亚洲国产v高清不卡| 中文字幕免费在线播放| 国产无遮挡吃胸膜奶免费看视频| 边摸边吃奶边做爽免费视频99 | 成人免费观看一区二区| 国产精品亚洲精品日韩已满| 全部一级一级毛片免费看| 亚洲日韩欧洲乱码AV夜夜摸| 在线免费观看你懂的| 亚洲AV午夜福利精品一区二区| 久久WWW免费人成—看片| 亚洲人成无码www久久久| 久久精品毛片免费观看| 色噜噜的亚洲男人的天堂| 久久久久久久综合日本亚洲| 97无码免费人妻超级碰碰碰碰|