spring集成日志log4j

准备工作:

开发工具:eclipse 或其他IDE

spring版本3.24下载地址:

http://repo.spring.io/libs-release-local/org/springframework/spring/3.2.4.RELEASE/spring-framework-3.2.4.RELEASE-dist.zip

Log4j版本:log4j-1.2.16.jar

1.创建一个动态web项目,名字任意指定

2.导入spring-framework-3.2.4.RELEASE\libs下以及log4j的jar包

spring-beans-3.2.4.RELEASE.jar

spring-context-3.2.4.RELEASE.jar

spring-core-3.2.4.RELEASE.jar

log4j-1.2.16.jar

 2.在classpath(也就是src下)下创建在log4j包的log4j.properties 具体配置说明可以百度一下

log4j.rootCategory=INFO,stdout,R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[springLogger] %d{yyyy MMM dd HH:mm:ss,SSS} %p [%t] %C.%M(%L) %m%n
    
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=${springLogger.root}/logs/logger.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
1log4j.appender.R.layout.ConversionPattern=[springLogger] %d{yyyy MMM dd HH:mm:ss,SSS} %p [%t] %C.%M(%L) %m%n

log4j.logger.org.springframework=DEBUG
log4j.logger.org.apache.velocity=FATAL

 在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" id="WebApp_ID" version="2.5">
  <display-name>springLogger</display-name>
  
  <!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root"-->   
  <context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>springLogger.root</param-value>
  </context-param>
  
  <!-- log4j.properties 的路径 -->
  <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:log4j.properties</param-value>
  </context-param>
  
  <!-- 开一条watchdog线程每60秒扫描一下配置文件的变化 -->
  <context-param>
    <param-name>log4jRefreshInterval</param-name>
    <param-value>60000</param-value>
  </context-param>
  
  <!-- log4j的日志监听-->
  <listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>
  
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
	    classpath:applicationContext.xml
    </param-value>
  </context-param>
  <listener>
  <!-- 在Spring2.0中除了以前的Singleton和Prototype外又加入了三个新的web作用域,分别为request、session和global session,如果你想让你的容器里的某个bean拥有其中某种新的web作用域,除了在bean级上配置相应的scope属性,还必须在容器级做一个额外的初始化配置  -->
  <listener-class>
			org.springframework.web.context.request.RequestContextListener
  </listener-class>
  </listener>
  <listener>
    <listener-class>
	  org.springframework.web.context.ContextLoaderListener
     </listener-class>
  </listener>
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

 在classpath(也就是src下)下创建  applicationContext.xml 资源文件,没有注入内容,只为测试

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xmlns:p="http://www.springframework.org/schema/p"  
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:aop="http://www.springframework.org/schema/aop"   
    xmlns:tx="http://www.springframework.org/schema/tx"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans   
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd  
    http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context-3.2.xsd  
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd  
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">   

</beans>

在项目中com.test下创建一个Main.java类文件

package com.test; 

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.util.Assert;

/** 
 * @author  HL Yang 
 * @date    创建时间:2014年11月25日 下午4:09:30  
 */

public class Main {
	
	
	public static void main(String args[]) throws InterruptedException{
		
		 ApplicationContext ctx  = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
			
		 Assert.isNull(ctx,"this ctx is not null ");
		
	}

}

 至此配置文件都已完成

需要注意的两点是:

  <!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root"-->  
  <context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>springLogger.root</param-value>
  </context-param>
可以与log4j.properties中log4j.appender.R.File=${springLogger.root}/logs/logger.log对应输出

相关推荐