public class Log4jInitServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void service(ServletRequest req, ServletResponse resp)
throws ServletException, IOException {
} public void init() throws ServletException {
System.setProperty("webappRoot", getServletContext().getRealPath("/"));
PropertyConfigurator.configure(getServletContext().getRealPath("/")
+ getInitParameter("configfile"));
}
}

解决方案 »

  1.   

     Xml代码
         <servlet>  
        <servlet-name>log4j-config-file</servlet-name>  
        <servlet-class>com.ivision.pms.common.log.Log4jInitServlet</servlet-class>  
        <init-param>  
            <param-name>configfile</param-name>  
            <param-value>/WEB-INF/classes/log4j-config.properties</param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
    </servlet>SERVLET代码如下:
    package com.ivision.pms.common.log;import java.io.IOException;import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServlet;import org.apache.log4j.PropertyConfigurator;public class Log4jInitServlet extends HttpServlet
    {
    public void service(ServletRequest req, ServletResponse resp)
    throws ServletException, IOException
    { } public void init() throws ServletException
    {
    System.setProperty("WebAppRoot", getServletContext().getRealPath("/"));
    PropertyConfigurator.configure(getServletContext().getRealPath("/") + getInitParameter("configfile"));
    }
    }LOG4J的属性文件内容如下,并将属性文件放在了WebRoot/WEB-INF/classes目录里面:
    log4j.rootLogger = DEBUG, A1
    log4j.appender.A1 = org.apache.log4j.ConsoleAppender
    log4j.appender.A1.layout = org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n下面是JSP页面:
    <%@ page language="java" import="java.util.*,org.apache.log4j.Logger" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>  
    <head>  
    <link href="style/reg.css" rel="stylesheet" type="text/css">  
    <title>测试页面</title>  
    </head>  
    <body>  
      
    <%  
    System.out.println("aaaaa");
    Logger log = Logger.getLogger("test.jsp");  
    log.info("测试日志,哈哈");  
    System.out.println("bbbbb");
    %>  
      
    </body>  
    </html>