<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

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

    1.基礎(chǔ)知識:
    Log4j的中文文檔 (這是根據(jù)最新的log4j(jakarta-log4j-1.2.8)的開發(fā)包自帶文檔的manual翻譯的)
    http://dev.csdn.net/develop/article/29/29441.shtm
    對應(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)進入目錄“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);”這行代碼之前;因為這樣才給"webappHome"設(shè)置值了,log4j.properties文件中的“

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

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

    7)設(shè)置“jsp-examples\WEB-INF\web.xml”,使上述Log4JInit.java這個servlet自動啟動,在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容器啟動時即裝入該Servlet。log4j.properties文件

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

    便管理。

    8)在webapp中使用log4j;進入目錄“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本身也會自動按日生成日志文件,在目錄“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配置方式有待實踐和學(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)用下的某一個目錄下,整個Servlet,專門用來設(shè)置環(huán)境變量和讀取log4j的配置

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

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

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

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

    主站蜘蛛池模板: 两个人看的www高清免费观看| 国产精品免费一级在线观看| 全部一级一级毛片免费看| 亚洲蜜芽在线精品一区| 国产亚洲精品免费视频播放 | 亚洲五月午夜免费在线视频| 18国产精品白浆在线观看免费| 日本黄色免费观看| 一级毛片在线免费播放| 国产亚洲综合成人91精品| 青青草原1769久久免费播放| 麻豆一区二区三区蜜桃免费| 亚洲中文字幕久久精品无码APP| 免费网站看v片在线香蕉| 人成午夜免费大片在线观看| 国产亚洲免费的视频看| 亚洲精品无码专区久久同性男| 免费在线中文日本| japanese色国产在线看免费| 含羞草国产亚洲精品岁国产精品| 亚洲图片中文字幕| 亚洲欧洲免费视频| 亚洲国产精品无码专区在线观看 | 亚洲精品卡2卡3卡4卡5卡区| 免费一级毛片正在播放| 免费在线中文日本| a国产成人免费视频| 亚洲一区二区三区免费观看| 久久精品国产亚洲AV高清热 | 69影院毛片免费观看视频在线| 国产成人免费AV在线播放| 男女一边桶一边摸一边脱视频免费| 亚洲精品国产成人99久久| 久久精品亚洲一区二区| 亚洲国产精品无码av| 亚洲国产无套无码av电影| 国产偷国产偷亚洲清高动态图| 中文字幕亚洲不卡在线亚瑟| 中文亚洲AV片在线观看不卡| 亚洲女同成av人片在线观看| 国产精品美女自在线观看免费|