我的空間,寫我所寫,禪我所藏

          與我一起遨游吧

           

          java Logging API 使用

          當你在開發程序的時候, 調試(debugging)和日志(logging)都是非常重要的工作, 但是, 現在有太多的 logging api 問世, 因為他們都不錯, 很難做一個抉擇. 國外 java 論壇對于這些 logging 方式也是有一番討論.

          而 common logging 就是一個在這幾個不同的 logging api 中建立小小的橋梁.目前在 java 中最有名的 log 方式, 首推是 log4j, 另是 jdk 1.4 logging api. 除此之外, 還有 avalon 中用的 logkit 等等 . 而 commons-logging 也有實現一些基本 的 logging 方式為 nooplog 及 simplelog. 對于他們的比較不在這次討論范圍,

          有興趣者請自行參閱參考文件.

          快速使用 logging 其實 logging 非常簡單去使用, 將 commons-logging.jar 放到 /web-inf/lib 之下.接著寫以下的代碼

          loggingtest.java 

          package com.softleader.newspaper.java.opensource;

          import org.apache.commons.logging.log;
          import org.apache.commons.logging.logfactory;

          public class loggingtest {

          log log = logfactory.getlog(loggingtest.class);

          public void hello() {
          log.error("error");
          log.debug("debug");
          log.warn("warn");
          log.info("info");
          log.trace("trace");
          system.out.println("okok");
          }



          在 / 放置一個 jsp 測試 test-commons-logging.jsp

          <%@ page import="com.softleader.newspaper.java.opensource.loggingtest" %>
          <% loggingtest test = new loggingtest(); test.hello();%> 

          你將會看到 tomcat console 會有下面輸出 

          log4j:warn no appenders could be found for logger (com.softleader.newspaper.java.opensource.loggingtest).
          log4j:warn please initialize the log4j system properly.okok

          是因為你還沒有配置 commons-logging.properties, 馬上會為你介紹 ~~~. 

          設定 commons-logging.properties 你可以設置你的 log factory 是要使用哪一個 我以 log4j 為例子 在 /web-inf/classes/commons-logging.properties 中寫入 
          org.apache.commons.logging.log=org.apache.commons.logging.impl.log4jcategorylog 
          如果你 server 是使用 jdk1.4 以上的版本 
          可以使用 org.apache.commons.logging.impl.jdk14logger
          接著根據你的 logger 撰寫符合他的 properties 拿 log4j 為例子 你就要在 
          /web-inf/classes/ 下放置一個 log4j.properties

          //日志輸出到文件
          log4j.rootlogger=debug, a_default
          log4j.appender.a_default=org.apache.log4j.rollingfileappender
          log4j.appender.a_default.file=c://log/test.log
          log4j.appender.a_default.maxfilesize=4000kb
          log4j.appender.a_default.maxbackupindex=10
          log4j.appender.a_default.layout=org.apache.log4j.patternlayout
          log4j.appender.a_default.layout.conversionpattern=%d{iso8601} - %p - %m%n

          # 比較完整的輸出
          # log4j.appender.a_default.layout.conversionpattern=%d %-5p [%t] %-17c{2} (%13f:%l) %3x - %m%n
          //日志輸出到控制臺
          log4j.rootlogger=info, a1
          log4j.appender.a1=org.apache.log4j.consoleappender
          log4j.appender.a1.layout=org.apache.log4j.patternlayout
          log4j.appender.a1.layout.conversionpattern=%-d{yyyy-mm-dd hh:mm:ss,sss} [%c]-[%p] %m%n


          此時你去執行 test-commons-logging.jsp 輸出的內容, 就會記錄在你的 c:\log 目錄的 test.log 中了 ps:如果沒有相關的 class 會使用到 simplog, 此時要設定的是 
          simplelog.properties 結論以我自己本身使用的經驗, log4j 可以滿足所有工程師, 所以我也是直接使用 log4j 而沒有使用 commons-logging. 

          不過為了增加產品的通用性, 避免移植時候的麻煩, 新的產品及項目, 我會將他改成 commons-logging api 去調用. 

          如果你對commons-logging的工作原理不是很了解,請參考<commons-logging的使用方法>



          文章整理:http://www.west263.com

          posted on 2007-06-27 14:11 imcb 閱讀(490) 評論(0)  編輯  收藏


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


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 武穴市| 右玉县| 共和县| 汶川县| 桓仁| 舒兰市| 凭祥市| 韶关市| 兴业县| 桂阳县| 安岳县| 常山县| 云林县| 武宣县| 湖口县| 台北县| 吉木乃县| 延津县| 泰宁县| 黄梅县| 汶川县| 峨边| 汾西县| 夹江县| 理塘县| 玛纳斯县| 松阳县| 修武县| 中牟县| 广南县| 延川县| 同德县| 加查县| 太白县| 黎平县| 社旗县| 莱州市| 山阴县| 汉源县| 珠海市| 苏尼特左旗|