Log4j 日志配置及初始化

首先配置pom.xml

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>

配置log4j.properties

### direct log messages to stdout ###
log4j.rootLogger=DEBUG,stdout,FILE
#--System.out--
log4j.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=%d{ABSOLUTE} %5p %c:%L - %m%n

#----write MyBitisSQL---
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG



#--write file--
log4j.appender.FILE=org.apache.log4j.FileAppender  
log4j.appender.FILE.file=logs/JsServeice.log  
log4j.appender.FILE.Append=true  
log4j.appender.FILE.Threshold=INFO 
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
log4j.appender.FILE.MaxFileSize=10MB  
log4j.appender.FILE.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

默认的Log4j initialization典型的应用是在web-server 环境下。在tomcat3.x和tomcat4.x下,你应该将配置文件Log4j.properties放在你的web应用程序的WEB- INF/classes 目录下。
Log4j将发现属性文件,并且以此初始化。这是使它工作的最容易的方法。

Servlet 的初始化
用一个特别的servlet来做Log4j的初始化也是可以的。如下是一个例子:

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.apache.log4j.PropertyConfigurator;

public class InitLog4jServlet extends HttpServlet {
     private static final long serialVersionUID = 8733237315512854070L;

     /** * <li>HttpServlet的初始化方法</li> * <li>调用该方法来初始化Log4j日志系统</li> */
     public void init() {
      String prefix = getServletContext().getRealPath("/");
      String file = getInitParameter("log4j");

      if (file != null) {
        System.out.println("log4j 初始化成功");
       PropertyConfigurator.configure(prefix + file);
      } else {
       System.out.println("log4j 初始化失败");
      }

     }
}

在web.xml中定义随后的servlet为你的web-application。

<servlet>
        <servlet-name>log4j-init</servlet-name>
        <servlet-class>com.web.InitLog4jServlet</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)