mybatis日志输出

    使用过hibernate的朋友都知道,hibernate会将执行的sql打印到日志中。

    打印出执行的sql好处不言而喻,那么mybatis如何将日志打印出来呢。

  

    1.在pom.xml中添加依赖


	org.slf4j
	slf4j-log4j12
	1.7.2
            会下载以下3个jar包

   

    如果您不是使用maven管理jar包,那就下载这三个jar加载到项目classpath路径下即可。


    2.在根目录下添加log4j.properties文件

   

log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

          说明:须将日志级别调到DEBUG级别,mybatis才会进行sql输出。个人验证一下,确实如此。

  

    3.控制台输出结果

[main] DEBUG [com.neutron.flowers.mapper.userMapper.query] - ==>  Preparing: select id,name,age from users where id = ? 
[main] DEBUG [com.neutron.flowers.mapper.userMapper.query] - ==> Parameters: 1(Integer)
[main] DEBUG [com.neutron.flowers.mapper.userMapper.query] - <==      Total: 1
User [id=1, name=zhangsan, age=15]

        

     4.使用log4j.xml




	
		
			
		
	
	
		
	
	
		
	
	
		
		
	
           注意:两种配置文件使用一种即可,其中xml配置在某种程度更加清晰易懂

    5.输出结果如下   

DEBUG 07-06 07:12:19,964 Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.  (LogFactory.java:135) 
DEBUG 07-06 07:12:20,254 PooledDataSource forcefully closed/removed all connections.  (PooledDataSource.java:316) 
DEBUG 07-06 07:12:20,254 PooledDataSource forcefully closed/removed all connections.  (PooledDataSource.java:316) 
DEBUG 07-06 07:12:20,254 PooledDataSource forcefully closed/removed all connections.  (PooledDataSource.java:316) 
DEBUG 07-06 07:12:20,254 PooledDataSource forcefully closed/removed all connections.  (PooledDataSource.java:316) 
DEBUG 07-06 07:12:20,443 Opening JDBC Connection  (JdbcTransaction.java:138) 
DEBUG 07-06 07:12:20,969 Created connection 1884171537.  (PooledDataSource.java:387) 
DEBUG 07-06 07:12:20,974 ==>  Preparing: select id,name,age from users where id = ?   (BaseJdbcLogger.java:145) 
DEBUG 07-06 07:12:21,045 ==> Parameters: 1(Integer)  (BaseJdbcLogger.java:145) 
DEBUG 07-06 07:12:21,089 <==      Total: 1  (BaseJdbcLogger.java:145) 
DEBUG 07-06 07:12:21,090 Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@704e2d11]  (JdbcTransaction.java:92) 
DEBUG 07-06 07:12:21,090 Returned connection 1884171537 to pool.  (PooledDataSource.java:344) 
User [id=1, name=zhangsan, age=15]

            

你可能感兴趣的:(mybatis)