zoukankan      html  css  js  c++  java
  • 配置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 输出代码中的行号
  • 相关阅读:
    linux下的开源移动图像监测程序--motion编译与配置【转】
    motion程序的移植和安装【转】
    Android5.1 在init.rc 中添加自己的服务【转】
    Android进程回收机制LMK(Low Memory Killer)【转】
    Linux内核OOM机制的详细分析【转】
    Android——build.prop 解析【转】
    Android——build.prop 解析【转】
    【转】ios的控件UIScrollView的位置定位---------逐渐积累
    【转】IOS图像拉伸解决方案
    【转】NSString属性什么时候用copy,什么时候用strong?
  • 原文地址:https://www.cnblogs.com/ll409546297/p/6841093.html
Copyright © 2011-2022 走看看