配置spring的log4j日志记录

1、导入依赖包pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.troy</groupId>
  <artifactId>springlog</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>3.2.8.RELEASE</version>
    </dependency> 
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.9</version>
    </dependency>
  </dependencies>
</project>

2、web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>spring-mvc</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring/spring-mvc.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>
  <filter>
      <filter-name>encodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
      </init-param>
      <init-param>
          <param-name>forceEncoding</param-name>
          <param-value>true</param-value>
      </init-param>
  </filter>
  <filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/</url-pattern>
  </filter-mapping>
  
  <context-param>
      <param-name>log4jConfigLocation</param-name>
      <param-value>classpath:conf/log4j.properties</param-value>
  </context-param>
  <context-param>
      <param-name>log4jRefreshInterval</param-name>
      <param-value>1800000</param-value>
  </context-param>
  <listener>
      <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>
  
</web-app>

说明:log4jConfigLocation、log4jRefreshInterval属性来源在:org.springframework.web.util.Log4jConfigListener里面的Log4jWebConfigurer配置里面

3、log4j.properties的配置

log4j.rootLogger=INFO,stdout,R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[ims] %d{yy-MM-dd HH:mm:ss:SSSS} %p %C{1}.%M(%L) | %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log/log.log
log4j.appender.R.MaxFileSize=1024KB
log4j.appender.R.MaxBackupIndex=50
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[ims] %d{yy-MM-dd HH:mm:ss:SSSS} %p %C{1}.%M(%L) | %m%n


log4j.logger.ims=DEBUG
log4j.logger.tems=DEBUG
log4j.logger.com=DEBUG
log4j.logger.com.ibatis.io=ERROR

log4j.logger.com.opensymphony.oscache=INFO
log4j.logger.net.sf.navigator=ERROR
log4j.logger.org.apache.commons=ERROR
log4j.logger.org.apache.struts=INFO
log4j.logger.org.displaytag=ERROR
log4j.logger.org.springframework=WARN
log4j.logger.com.ibatis.db=WARN
log4j.logger.org.apache.velocity=FATAL

log4j.logger.com.opensymphony.xwork2=INFO
log4j.logger.org.apache.struts2=INFO

log4j.logger.org.apache.struts2.convention=INFO
log4j.logger.com.opensymphony.xwork2.util.finder=INFO

log4j.logger.com.canoo.webtest=WARN

# All hibernate log output of "info" level or higher goes to stdout.
# For more verbose logging, change the "info" to "debug" on the last line.
log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
log4j.logger.org.hibernate=WARN
log4j.logger.org.hibernate.SQL=debug   
log4j.logger.org.hibernate.type=trace   

#for jsp
log4j.logger.org.apache.jasper.servlet=OFF
log4j.logger.org.apache.catalina.core=OFF

具体参数配置的意义,自行百度。
5、后台应用

@RequestMapping(value="/log")
@Controller
public class LogController {
    
    private static Logger log = Logger.getLogger(LogController.class);
    
    @RequestMapping(value="/init")
    public String init(){
        
        log.info("log.jsp init");
        return "log";
    }
}

注意:这里我只是做的测试,不要在意写那个层

 6、打印参数

   %m   输出代码中指定的消息
  %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
  %r   输出自应用启动到输出该log信息耗费的毫秒数 
  %c   输出所属的类目,通常就是所在类的全名 
  %t   输出产生该日志事件的线程名 
  %n   输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” 
  %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss ,SSS},输出类似:2002年10月18日 22:10:28,921  
  %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 
  %M 输出方法的名字、%m是输出代码指定的日志信息。
%x 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
   %% 输出一个”%”字符
   %F 输出日志消息产生时所在的文件名称
   %M 输出执行方法
   %L 输出代码中的行号

 

posted @ 2017-05-11 15:21  小不点丶  阅读(6951)  评论(0编辑  收藏  举报