aldream

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            1 Posts :: 10 Stories :: 1 Comments :: 0 Trackbacks
          在Web 應用中,應該在哪兒對Log4J進行配置呢?首先要明確,Log4J必須在應用的其它代碼執行前完成初始化。因為Servlet 是在Web服務器啟動時立即裝入的,所以,在Web應用中一般使用一個專門的Servlet來完成Log4J的配置,并保證在web.xml的配置中,這 個Servlet位于其它Servlet之前。下面是一個例子,代碼如下:
          servlet內容:
           1package com.foo;
           2 
           3import org.apache.log4j.PropertyConfigurator;
           4import javax.servlet.http.HttpServlet;
           5import javax.servlet.http.HttpServletRequest;
           6import javax.servlet.http.HttpServletResponse;
           7import java.io.PrintWriter;
           8import java.io.IOException;
           9 
          10public class Log4jInit extends HttpServlet {
          11 
          12  public
          13  void init() {
          14    String prefix =  getServletContext().getRealPath("/"); //get webapp root path
          15    String file = getInitParameter("log4j-init-file");
          16    // if the log4j-init-file is not set, then no point in trying
          17    if(file != null{
          18      PropertyConfigurator.configure(prefix+file);
          19    }

          20  }

          21 
          22  public
          23  void doGet(HttpServletRequest req, HttpServletResponse res) {
          24  }

          25}

          26
          在web.xml 中添加:
          <servlet> 
          <servlet-name>log4jinit</servlet-name> 
          <servlet-class>log4j.Log4JInit</servlet-class> 
          <init-param> 
          <param-name> log4j-init-file </param-name> 
          <param-value>\properties\log4j.properties</param-value> //項目物理相對路徑
          </init-param> 
          <load-on-startup>1</load-on-startup> 
          </servlet>
          注意:上面的load-on-startup應設為1,以便在Web容器啟動時即裝入該Servlet。log4j.properties文件放在根的properties子目錄中,也可以把它放在其它目錄中。應該把.properties文件集中存放,這樣方便管理。

          一個還沒解決的問題:
          當啟動tomcat的時候,會出現以下信息:

          log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
          log4j:WARN Please initialize the log4j system properly.
          但不影響log4j的使用。
          posted on 2007-11-10 02:06 aldream 閱讀(1137) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 崇明县| 佛教| 屯昌县| 遂宁市| 万宁市| 高雄市| 漠河县| 仁怀市| 固原市| 印江| 铁岭县| 黎城县| 牙克石市| 东乌| 宁南县| 庆安县| 鲜城| 团风县| 抚松县| 区。| 崇仁县| 仁布县| 许昌市| 汽车| 建阳市| 临洮县| 江阴市| 沙雅县| 虎林市| 宜都市| 高雄市| 长海县| 武义县| 潮安县| 炉霍县| 玛曲县| 扎囊县| 恩平市| 资中县| 全州县| 鹤峰县|