Servlet日志输出Log4j配置

Servlet日志输出Log4j配置
    转自: http://musicbox95351.iteye.com/blog/868526
    比如项目为一个UserServlet,主要分三步
    1 日志输出文件log4j.xml的配置。 
    2 加载日志配置文件的servlet类。 
    3 web.xml配置

    第一步:
    
 1 <? xml version = " 1.0 "  encoding = " UTF-8 "   ?>
 2 <! DOCTYPE log4j:configuration SYSTEM  " log4j.dtd " >
 3 < log4j:configuration xmlns:log4j = " http://jakarta.apache.org/log4j/ " >
 4 < appender name = " infoChannel "
 5    class = " org.apache.log4j.RollingFileAppender " >
 6    <!--  设置通道file和输出方式:org.apache.log4j.RollingFileAppender  -->
 7    < param name = " File "  value = " ${catalina.home}/logs/tourist_guide_system_server.log "   /><!--  设置File参数:日志输出文件名  -->
 8    < param name = " Append "  value = " true "   /><!--  设置是否在重新启动服务时,在原有日志的基础添加新日志  -->
 9    < param name = " MaxBackupIndex "  value = " 10 "   />
10    < param name = " MaxFileSize "  value = " 10KB " />
11    < layout  class = " org.apache.log4j.PatternLayout " >
12     < param name = " ConversionPattern "  value = " %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n "   /><!--  设置输出文件项目和格式  -->
13    </ layout >
14    < filter  class = " org.apache.log4j.varia.LevelRangeFilter " >
15        < param name = " LevelMin "  value = " INFO "   /><!-- 设置将INFO级别的日志通过该通道输出 -->
16        < param name = " LevelMax "  value = " INFO "   />
17    </ filter >
18 </ appender >
19 < appender name = " debugChannel "
20    class = " org.apache.log4j.RollingFileAppender " >
21    <!--  设置通道file和输出方式:org.apache.log4j.RollingFileAppender  -->
22    < param name = " File "  value = " ${catalina.home}/logs/testdebug.log "   /><!--  设置File参数:日志输出文件名  -->
23    < param name = " Append "  value = " true "   /><!--  设置是否在重新启动服务时,在原有日志的基础添加新日志  -->
24    < param name = " MaxBackupIndex "  value = " 10 "   />
25    < param name = " MaxFileSize "  value = " 10KB " />
26    < layout  class = " org.apache.log4j.PatternLayout " >
27     < param name = " ConversionPattern "  value = " %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n "   /><!--  设置输出文件项目和格式  -->
28    </ layout >
29    < filter  class = " org.apache.log4j.varia.LevelRangeFilter " >
30        < param name = " LevelMin "  value = " DEBUG "   />
31        < param name = " LevelMax "  value = " DEBUG "   />
32    </ filter >
33 </ appender >
34 < appender name = " STDOUT "   class = " org.apache.log4j.ConsoleAppender " >
35                  <!--  设置监视器输出方式  -->
36    < layout  class = " org.apache.log4j.PatternLayout " >
37     < param name = " ConversionPattern "
38     value = " %-4r [%t] %-5p %c %x - %m%n "   />
39    </ layout >
40                  <!-- 滤镜设置输出的级别 -->
41    < filter  class = " org.apache.log4j.varia.LevelRangeFilter " >
42     < param name = " levelMin "  value = " info "   />
43     < param name = " levelMax "  value = " info "   />
44     < param name = " AcceptOnMatch "  value = " true "   />
45    </ filter >
46 </ appender >
47
48 < root >
49    <!-- 设置输出的级别大于等于DEGUG priority value = " DEBUG "   /   -->
50    <!-- 设置输出的级别 -->
51    < priority value = " INFO "   />
52    <!--  设置接收所有输出的通道  -->
53    < appender - ref ref = " debugChannel "   />
54    < appender - ref ref = " infoChannel "   /><!--  与前面的通道id相对应  -->
55    < appender - ref ref = " STDOUT "   />
56 </ root >
57
58 </ log4j:configuration >

    第二步:

1
2 import java.io.IOException;
3
4 import javax.servlet.ServletException;
5 import javax.servlet.http.HttpServlet;
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
8
9 import org.apache.log4j.xml.DOMConfigurator;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
12
13 public class UserServlet extends HttpServlet {
14 private static final Logger log = LoggerFactory.getLogger(UserServlet.class);
15 public UserServlet(){}
16
17 public void init() throws ServletException {
18 log.info("Initializing, My MyActionServlet init this System's Const Variable");
19 String prefix = this.getServletConfig().getServletContext().getRealPath("/");//读取项目的路径
20 String file = this.getServletConfig().getInitParameter("log4j");//读取log4j相对路径
21 String filePath = prefix + file;
22 DOMConfigurator.configure(filePath);//加载.xml文件
23 log.info("Initializing, end My Init");
24 super.init();//此方法不能省,ActionServlet覆盖了的此方法中有很多重要操作
25 }

26}


    第三步: web.xml文件中增加servlet配置 
1 < servlet >
2 < servlet - name > userServlet </ servlet - name >
3 < servlet - class > com.richhouse.servlet.UserServlet </ servlet - class >
4 < init - param >
5 < param - name > log4j </ param - name >
6 <!-- 这里标出了位置 -->
7 < param - value >/ WEB - INF / log4j.xml </ param - value >
8 </ init - param >
9 < load - on - startup > 1 </ load - on - startup >
10 </ servlet >
11 < servlet - mapping >
12 < servlet - name > userServlet </ servlet - name >
13 < url - pattern >/ userServlet </ url - pattern >
14 </ servlet - mapping >

你可能感兴趣的:(Servlet日志输出Log4j配置)