void

          log4j中使用相對路徑

          很多朋友想把日志寫在web應(yīng)用當(dāng)中,下面來介紹一下:
          log4j.properties文件配置如下:


           1log4j.rootLogger=ERROR,CONSOLE,A1   
           2log4j.addivity.org.apache=true   
           3  
           4log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender   
           5log4j.appender.A1.File=${webappHome}/WEB-INF/logs/website.log   
           6log4j.appender.A1.Encoding=GBK   
           7log4j.appender.A1.Threshold=DEBUG   
           8log4j.appender.A1.DatePattern='.'yyyy-MM-dd   
           9log4j.appender.A1.layout=org.apache.log4j.PatternLayout   
          10log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n 

          這里,我們使用${webappHome}來取得應(yīng)用路徑,webappHome是個變量。我們是從哪里取得的值呢?是從我們自己的類中,因此必須寫這個類。很簡單:

           1package com.clientmanager.util;   
           2  
           3import javax.servlet.ServletConfig;   
           4import javax.servlet.ServletException;   
           5import javax.servlet.http.HttpServlet;   
           6  
           7import org.apache.log4j.PropertyConfigurator;   
           8  
           9  
          10public class Log4jInit extends HttpServlet {      
          11       
          12       
          13    public void init(ServletConfig config) throws ServletException {   
          14        String prefix = config.getServletContext().getRealPath("/"); //獲取當(dāng)前路徑   
          15        String file = config.getInitParameter("log4j");//從web.xml中獲取參數(shù)值,找到log4j這個文件   
          16        System.setProperty("webappHome", prefix); //log4j.properties文件中的變量是在這里設(shè)置的   
          17        if (file != null{    
          18            PropertyConfigurator.configure(prefix + file);    
          19        }
             
          20    }
             
          21}
            

          好了,有了這個類,下一步是要在服務(wù)器啟動時來初始化這個類。所以要在web.xml中進行配置
          web.xml

          1<servlet>      
          2 <servlet-name>log4j-init</servlet-name>    
          3   <servlet-class>com.clientmanager.util.Log4jInit</servlet-class>     
          4     <init-param>       
          5       <param-name>log4j</param-name>     
          6     <param-value>WEB-INF/classes/log4j.properties</param-value>       
          7    </init-param>      
          8    <load-on-startup>0</load-on-startup>    
          9</servlet>

          最后說一點,如果你用struts,而在web.xml中配置了ServletAction,它的啟動級別為<load-onstartup>0</load-on-startup>,那么我們的這個類的的啟動級別不能低于它,否則可能會出現(xiàn)找不到路徑的問題

          posted on 2009-06-05 19:24 void 閱讀(450) 評論(0)  編輯  收藏 所屬分類: Log4j


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 安福县| 鲁甸县| 曲沃县| 宁都县| 孝感市| 巩留县| 沁阳市| 贵港市| 黑山县| 宜春市| 东平县| 永胜县| 江北区| 临城县| 且末县| 西贡区| 兴仁县| 玉山县| 浏阳市| 治县。| 汶上县| 西城区| 临泽县| 信丰县| 正宁县| 莱芜市| 嘉荫县| 陇南市| 扬中市| 玉门市| 祁门县| 沾益县| 任丘市| 信阳市| 子洲县| 离岛区| 平山县| 土默特右旗| 麦盖提县| 临汾市| 海宁市|