mybatis配置log4j在控制台打印输出SQL语句

mybatis | 2019-09-13 10:02:39

SpringMVC+Mybatis通过log4j向控制台打印SQL语句

1.首先看看Mybatis官方介绍:
Logging  
Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具:  

SLF4J  
Apache Commons Logging  
Log4j 2  
Log4j  
JDK logging  
具体选择哪个日志实现工具由MyBatis的内置日志工厂确定。
它会使用最先找到的(按上文列举的顺序查找)。 如果一个都未找到,日志功能就会被禁用。  

不少应用服务器的classpath中已经包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis会把它作为具体的日志实现。记住这点非常重要。这将意味着,在诸如 WebSphere的环境中——WebSphere提供了Commons Logging的私有实现,你的Log4J配置将被忽略。 这种做法不免让人悲催,MyBatis怎么能忽略你的配置呢?事实上,因Commons Logging已经存 在了,按照优先级顺序,Log4J自然就被忽略了!  所以先配置mybatis-config.xml。



2.mybatis-config.xml配置

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties>
<property name="dialect" value="mysql" />
</properties>
<settings>
<setting name="logImpl" value="LOG4J" /> 
</settings>
</configuration>

最重要的是:<setting name="logImpl" value="LOG4J" />  


在mybatis的配置文件中:setting节点里配置的值会直接改写Configuration对应的变量值,这些变量描述的是Mybatis的全局运行方式,如果对这些属性的含义不熟悉的话建议不要配置,使用默认值即可。


3.最后对log4j进行配置:

#########################################################################  
#Root Logger  
#log4j.rootLogger = [ level ] , appenderName, appenderName,  
#ConversionPattern:%d{yyyy-MM-dd-HH\:mm\:ss,SSS} [%t]  [%c] [%p] - %m%n    
#FilePath =  /opt/uploads/maven_logs/maven_web.log  
#########################################################################  
#将Mybatis log4j运行级别调到DEBUG可以在控制台打印出Mybatis运行的sql语句  
log4j.rootLogger=DEBUG,Console,File  
### 把日志信息输出到控制台 ###  
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.Target=System.out  
log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd-HH\:mm\:ss,SSS} [%t]  [%c] [%p] - %m%n   
### 把日志信息输出到文件:/opt/uploads/maven_logs/maven_web.log ###  
log4j.appender.File = org.apache.log4j.DailyRollingFileAppender  
log4j.appender.File.File = /opt/uploads/maven_logs/maven_web.log  
log4j.appender.File.Threshold = DEBUG  
log4j.appender.File.layout = org.apache.log4j.PatternLayout  
log4j.appender.File.layout.ConversionPattern =%d{yyyy-MM-dd-HH\:mm\:ss,SSS} [%t]  [%c] [%p] - %m%n   
  
###显示SQL语句部分  
log4j.logger.com.mybatis=DEBUG  
log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG  
log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG  
log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG  
log4j.logger.java.sql.Connection=DEBUG  
log4j.logger.java.sql.Statement=DEBUG  
log4j.logger.java.sql.PreparedStatement=DEBUG


登录后即可回复 登录 | 注册
    
关注编程学问公众号