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 閱讀(826) 評論(0)  編輯  收藏 所屬分類: Jakarta Commons

          主站蜘蛛池模板: 星子县| 万源市| 安溪县| 逊克县| 织金县| 铜山县| 鲁山县| 东兴市| 环江| 安康市| 斗六市| 涿州市| 建瓯市| 安吉县| 油尖旺区| 扎鲁特旗| 瓮安县| 丰城市| 新乡县| 辽阳县| 射洪县| 顺昌县| 西林县| 聂拉木县| 枣阳市| 赤水市| 临漳县| 高邮市| 石门县| 牟定县| 青海省| 博客| 承德市| 锡林浩特市| 巫溪县| 红河县| 普安县| 鄢陵县| 崇义县| 虎林市| 安国市|