初始化Servlet时配置Log4j

来源:互联网 发布:淘宝模板的作用 编辑:程序博客网 时间:2024/06/05 15:32

新建一个Servlet

在servlet的init()方法中配置log4j.

package com.al0n4k.servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import org.apache.log4j.PropertyConfigurator;public class Log4jInit extends HttpServlet {    private static final long serialVersionUID = 1L;    public void init(ServletConfig config) throws ServletException {        // 获取项目真实路径        String prefix = config.getServletContext().getRealPath("/"); // 获取当前路径        // 获取log4j.properties文件所在路径,InitParameter是web.xml文件中配置的初始化参数        String file = config.getInitParameter("log4j");        System.out.println("webRoot=====:" + prefix);        // 设置到系统中.        System.setProperty("webRoot", prefix); // 这样设置后我们就可以log4j.properties文件中来引用路径了.        if (file != null) {            // 如果文件存在那么配置log4j.properties文件.            // prefix是项目真实路径,file是log4j的所在的类路径:WEB-INF/classes/log4j.properties            PropertyConfigurator.configure(prefix + file);        }    }}

在web.xml中配置servlet

<servlet>    <display-name>Log4jInit</display-name>    <servlet-name>Log4jInit</servlet-name>    <servlet-class>com.al0n4k.servlet.Log4jInit</servlet-class>    <init-param>      <param-name>log4j</param-name><!-- 初始化参数名可以随便写一个 -->      <param-value>WEB-INF/classes/log4j.properties</param-value>    </init-param>    <load-on-startup>1</load-on-startup>  </servlet>

log4j.properties配置如下

${webRoot}/log/logFile.log代表我们将log文件生成在项目所在的目录里面,这也是我们在Servlet中通过System.setProperty("webRoot", prefix); //设置的一个系统属性.

log4j.rootLogger=debug,stdout,Dlog4j.appender.stdout = org.apache.log4j.ConsoleAppender  log4j.appender.stdout.Target = System.out  log4j.appender.stdout.layout = org.apache.log4j.PatternLayout  log4j.appender.stdout.layout.ConversionPattern = [%-5p] [%d{yyyy-MM-dd HH\:mm\:ss}] [method\:%l]%n%m%n  log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File =${webRoot}/log/logFile.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUG   log4j.appender.D.layout = org.apache.log4j.PatternLayout  log4j.appender.D.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH\:mm\:ss}] [method\:%l]%n%m%n
0 0