每日一得

          不求多得,只求一得 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)  編輯  收藏 所屬分類: 開源產品

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


          網站導航:
           
          主站蜘蛛池模板: 久治县| 视频| 合肥市| 南开区| 太白县| 阳江市| 荣昌县| 周至县| 江川县| 三台县| 威宁| 石棉县| 仁寿县| 淮安市| 阿城市| 大丰市| 唐山市| 郓城县| 绥芬河市| 博客| 枞阳县| 芒康县| 黔西| 宜黄县| 扎囊县| 山西省| 普安县| 武清区| 宁武县| 茌平县| 保康县| 礼泉县| 高台县| 留坝县| 邢台市| 民勤县| 广南县| 无棣县| 兴城市| 镇坪县| 宜良县|