Spring日志 common.logging 和log4j结合使用

为什么要这两个结合使用呢?

JCL有两个基本的抽象类:Log(基本记录器)和LogFactory(负责创建Log实例)。当commons-logging.jar被加入到CLASSPATH之后,默认的LogFactory是按照下列的步骤去发现并决定那个日志工具将被使用

  1. 寻找当前factory中名叫org.apache.commons.logging.Log配置属性的值
  2. 寻找系统中属性中名叫org.apache.commons.logging.Log的值
  3. 如果应用程序的classpath中有log4j,则使用相关的包装(wrapper)类(Log4JLogger)
  4. 如果应用程序运行在jdk1.4的系统中,使用相关的包装类(Jdk14Logger)
  5. 使用简易日志包装类(SimpleLog)

原来spring只是做了一个桥,把commons-logging结合Log4j连接在一起.spring使用log4j的进行日志输出,可以使用listeners进行初始化,

web.xml如下

        
        log4jConfigLocation    
       /WEB-INF/log4j.properties    
      
	  
        org.springframework.web.util.Log4jConfigListener  
    

log4j.properties如下

   
### 设置Logger输出级别和输出目的地 ###   

log4j.rootLogger=debug,stdout,logfile  

   

 ### 把日志信息输出到控制台 ###  

log4j.appender.stdout=org.apache.log4j.ConsoleAppender  

#log4j.appender.stdout.Target=System.err  

log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout  
 

### 把日志信息输出到文件:jbit.log ###  

log4j.appender.logfile=org.apache.log4j.FileAppender  

log4j.appender.logfile.File=D:/logs/log4j.log

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  

log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %F %p %m%n  

   

###显示SQL语句部分  

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 

Java代码如下:

private static final Log log = LogFactory.getLog(Test.class);


你可能感兴趣的:(java,Spring日志,common.logg)