隨筆 - 45, 文章 - 6, 評(píng)論 - 4, 引用 - 0
          數(shù)據(jù)加載中……

          log4j配置webapp日志系統(tǒng)

          1.基礎(chǔ)知識(shí):
          Log4j的中文文檔 (這是根據(jù)最新的log4j(jakarta-log4j-1.2.8)的開發(fā)包自帶文檔的manual翻譯的)
          http://dev.csdn.net/develop/article/29/29441.shtm
          對(duì)應(yīng)的英文原文:
          Short introduction to log4j
          http://logging.apache.org/log4j/docs/manual.html

          2.步驟
          1)log4j.jar放到j(luò)sp-examples\WEB-INF\lib下;
          2)在jsp-examples下新建properties\log4j.properties;
          3)log4j.properties內(nèi)容:
          #log4j.properties

          log4j.rootLogger=info, A1

          log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
          log4j.appender.A1.file=${webappHome}/logs/tomcat_log_
          log4j.appender.A1.DatePattern=yyyy-MM-dd'.html'
          log4j.appender.A1.layout=org.apache.log4j.HTMLLayout

          4)“F:\UserWorkSpace\jiangcm\Tomcat 5.0\webapps\jsp-examples\”新建上述屬性文件所設(shè)置的存放

          日志文件的logs文件夾;
          注釋:
          tomcat_log_是文件名,可以不用預(yù)先新建該文件;如果預(yù)先建了,則日志文件直接為tomcat_log_2007-

          03-05.html格式,如果之前無該文件,在第一次生成的日志文件名稱為tomcat_log_;

          5)進(jìn)入目錄“F:\UserWorkSpace\jiangcm\Tomcat 5.0\webapps\jsp-examples\WEB-INF\classes”,新

          建“log4j\Log4JInit.java”;

          6)Log4JInit.java內(nèi)容:
          package log4j;
          import java.io.*;
          import javax.servlet.*;
          import javax.servlet.http.*;
          import org.apache.log4j.*;

          public class Log4JInit extends HttpServlet {

          public void init() throws ServletException {
          String prefix = getServletContext().getRealPath("/");
          String test = getServletContext().getRealPath("");
          System.out.println(prefix);
          System.out.println(test);
          System.setProperty("webappHome", test);
          String file = getServletConfig().getInitParameter("log4j-config-file");
          System.out.println(prefix+file);
          // 從Servlet參數(shù)讀取log4j的配置文件
          if (file != null) {
          PropertyConfigurator.configure(prefix + file);
          }

          }
          public void doGet(HttpServletRequest request,HttpServletResponse response)throws
          IOException, ServletException {}

          public void doPost(HttpServletRequest request,HttpServletResponse response)throws
          IOException, ServletException {}

          }

          注意:
          “System.setProperty("webappHome", test);”這行代碼要出現(xiàn)在“PropertyConfigurator.configure

          (prefix + file);”這行代碼之前;因?yàn)檫@樣才給"webappHome"設(shè)置值了,log4j.properties文件中的“

          log4j.appender.A1.file=${webappHome}/logs/tomcat_log_”中的“${webappHome}”這個(gè)環(huán)境變量才被

          賦值了,否則無法輸出日志文件;

          7)設(shè)置“jsp-examples\WEB-INF\web.xml”,使上述Log4JInit.java這個(gè)servlet自動(dòng)啟動(dòng),在web.xml

          中添加:
          <servlet>
          <servlet-name>log4jinit</servlet-name>
          <servlet-class>log4j.Log4JInit</servlet-class>
          <init-param>
          <param-name> log4j-config-file </param-name>
          <param-value>/properties/log4j.properties</param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
          </servlet>

          注意:上面的load-on-startup應(yīng)設(shè)為1,以便在Web容器啟動(dòng)時(shí)即裝入該Servlet。log4j.properties文件

          放在根的properties子目錄中,也可以把它放在其它目錄中。應(yīng)該把.properties文件集中存放,這樣方

          便管理。

          8)在webapp中使用log4j;進(jìn)入目錄“F:\UserWorkSpace\jiangcm\Tomcat 5.0\webapps\jsp-

          examples\WEB-INF\classes\dates”,修改JspCalendar.java,加上日志信息:
          //JspCalendar.java
          package dates;

          import java.text.DateFormat;
          import java.util.*;
          import org.apache.log4j.Logger;
          import org.apache.log4j.Level;
          import org.apache.log4j.*;

          public class JspCalendar {
          Calendar calendar = null;
          static Logger logger = Logger.getLogger(JspCalendar.class);

          public JspCalendar() {
          logger.debug("This is debug.");
          logger.info("This is an info.");
          logger.warn("This is a warning.");
          logger.error("This is an error.");
          logger.fatal("This is a fatal error.");

          calendar = Calendar.getInstance();
          Date trialTime = new Date();
          calendar.setTime(trialTime);
          }

          public int getYear() {

          return calendar.get(Calendar.YEAR);

          }

          ……
          //其他內(nèi)容不變;

          }

          9)修改系統(tǒng)日期,這樣才能手工觸發(fā)按日生成的日志;

          10)重啟tomcat;

          11)在IE中輸入“http://localhost:8086/jsp-examples/dates/date.jsp”;

          12)查看日志目錄“F:\UserWorkSpace\jiangcm\Tomcat 5.0\webapps\jsp-examples\logs”,耶!生成

          以日期命名的html日志文件tomcat_log_2007-03-05.html了!哈哈,太開心了!

          注釋:
          1.tomcat本身也會(huì)自動(dòng)按日生成日志文件,在目錄“F:\UserWorkSpace\jiangcm\Tomcat 5.0\logs”下;
          2.jdk如果無法編譯servlet,需要在tomcat\common\lib下把servlet-api.jar拷貝到j(luò)dk\jre\lib下;
          問題:
          1.把tomcat_log_2007-03-05.html文件名改為:jsp-examples_log_2007-03-05.html;
          2.xml配置方式有待實(shí)踐和學(xué)習(xí);
          參考資料:
          1.http://www.3doing.net/forums/printpage.asp?BoardID=11&ID=184

          2.http://wangluwww.spaces.live.com/blog/

          3.Log4j的中文文檔 (這是根據(jù)最新的log4j(jakarta-log4j-1.2.8)的開發(fā)包自帶文檔的manual翻譯的)
          http://dev.csdn.net/develop/article/29/29441.shtm

          4.http://www.javaeye.com/post/126014
          怕麻煩的話可以考慮放應(yīng)用下的某一個(gè)目錄下,整個(gè)Servlet,專門用來設(shè)置環(huán)境變量和讀取log4j的配置

          文件 ,初始化Servlet的時(shí)候,應(yīng)用程序的目錄是固定的
          可以通過System.setProperty("webappHome",this.getServletContext().getRealPath(""));來設(shè)置當(dāng)前

          應(yīng)用的目錄的絕對(duì)路徑為java內(nèi)部的環(huán)境變量,在log4j的配置文件里面用${webappHome}/WEB-

          INF/conf/log/Application.log 來配置該文件的絕對(duì)路徑就可以了

          posted on 2009-05-31 17:07 liyang 閱讀(1049) 評(píng)論(0)  編輯  收藏 所屬分類: apache

          主站蜘蛛池模板: 漳平市| 广宁县| 涞源县| 万山特区| 青神县| 木里| 邵阳市| 曲沃县| 河源市| 高碑店市| 新蔡县| 峨眉山市| 错那县| 高邑县| 伊金霍洛旗| 隆化县| 溧阳市| 偏关县| 手游| 克拉玛依市| 庆阳市| 达州市| 永吉县| 偏关县| 罗江县| 瑞昌市| 庆阳市| 夏津县| 西乌| 红安县| 沈阳市| 紫金县| 琼中| 上饶县| 定日县| 民乐县| 扶余县| 盖州市| 崇明县| 拜泉县| 集贤县|