Mybatis控制台打印sql语句

用到的jar包是:

<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.13</version>
		</dependency>

		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.3.1</version>
		</dependency>

log4j.properties文件内容如下:

log4j.rootLogger=info,stdout
 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] -%m%n  
 
 
log4j.logger.com.ibatis=debug
#print package soc.dao  sql 
log4j.logger.soc.dao=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,stdout

上面 最关键的一个配置是:log4j.logger.soc.dao=debug,没有这行,则无论jar包是log4j还是slf4j都不会打印sql,无论log4j.rootLogger=info,stdout还是log4j.rootLogger=debug,stdout,也不会打印。

这句配置的意思是将与mybatis mapper文件对应的dao层所在的package下的debug信息打印出来,即“log4j.logger.自己的与mapper文件对应的dao层所在的包=debug”。

log4j的日志优先级从高到低依次是:OFF FATAL ERROR WARN INFO DEBUG TRACE ALL,当设置了低级别时,该低级别及高于该级别的信息都会被打印出来。如定义级别为debug,则OFF FATAL ERROR WARN INFO信息都会打印出来。所以本例中,log4j.logger.soc.dao=trace也是可以的,这样打出的信息会更详细于debug。

你可能感兴趣的:(Mybatis控制台打印sql语句)