每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發
          最近關心的內容:SSH,seam,flex,敏捷,TDD
          本站的官方站點是:顛覆軟件

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks
          key words: commons log,log4j,apache log

          前言: 對于log4j雖然在用,但是也存在一個疑問,怎么有的用apache的commons logging有的直接用log4j,下面的這篇文章解釋了我的疑問.

          轉自 here

          Apache組織開發了一套用于支持Logging的Log4J,Java?1.4版本也引入了一套內置的 Logging框架,如果開發者想在這兩套Logging系統之間自由的切換,該怎么辦呢?答案就是,使用Commons?Logging。 Commons?Logging定義了一套抽象的Logging接口,用戶可以通過配置,使這些接口指向任何一個已存在的Logging系統。

          ?使用抽象Logging接口
          問題:
          你在編寫一個可以重復使用的庫,需要寫入Log信息,但你不想使你的Logging功能綁定在Apache?Log4J或者JDK?1.4?Logging框架上。
          解決方案:

          public?static?void?main(String[]?args)?{//自己替換[]

          ??System.setProperty("org.apache.commons.logging.Log",
          ??????"org.apache.commons.logging.impl.Jdk14Logger");
          ??Log?log?=?LogFactory.getLog("com.discursive.jccook.SomeApp");

          ??if?(log.isTraceEnabled())?{
          ????log.trace("This?is?a?trace?message");
          ??}

          ??if?(log.isDebugEnabled())?{
          ????log.debug("This?is?a?debug?message");
          ??}

          ??log.info("This?is?an?informational?message");
          ??log.warn("This?is?a?warning");
          ??log.error("This?is?an?error");
          ??log.fatal("This?is?fatal");

          }


          LogFactory.getLog方法會根據底層環境返回一個適當的Log實現。如果用戶想指定一個具體的Logging系統實現,可以設置org.apache.commons.logging.Log系統屬性。例如:
          System.setProperty("org.apache.commons.logging.Log",
          "org.apache.commons.logging.impl.Log4JLogger");
          這樣就會使用Log4J作為Logging系統。
          org.apache.commons.logging.Log可以設定為:
          ?org.apache.commons.logging.impl.Log4JLogger??使用Log4J
          ?org.apache.commons.logging.impl.Jdk14Logger??使用JDK?1.4?Logging框架
          ?org.apache.commons.logging.impl.SimpleLog??使用Commons?Logging內置的簡單Log實現
          其他:
          總結一下,Commons?Logging會按照下列順序來指定具體的Log實現。
          ?如果定義了org.apache.commons.logging.Log系統參數,實用指定的Logging實現。
          ?如果在CLASSPATH里發現了Log4J,使用Log4J。
          ?如果使用的是JDK1.4,使用JDK1.4內置的Logging框架。
          ?如果都沒有找到,則使用Commons?Logging內置的簡單Log實現。
          posted on 2006-12-18 15:38 Alex 閱讀(715) 評論(0)  編輯  收藏 所屬分類: 開源產品

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 义马市| 田东县| 京山县| 靖安县| 泰兴市| 电白县| 金堂县| 陆川县| 田林县| 铜鼓县| 怀来县| 南溪县| 临江市| 灵川县| 游戏| 内黄县| 道真| 富裕县| 大关县| 和平区| 商河县| 荔波县| 女性| 张家港市| 宜宾县| 莎车县| 瑞丽市| 互助| 基隆市| 宁海县| 怀远县| 桐柏县| 固始县| 新干县| 凤阳县| 乌拉特后旗| 郴州市| 孙吴县| 车险| 常山县| 特克斯县|