mybatis结合log4j打印SQL日志
引用jar包
默认的mybatis不能打印出SQL日志,不便于查看调试,需要结合log4jdbc-log4j2就可以完整的输入SQL的调试信息。
配置maven,注意以下3个都需要
<dependency>
<groupId>.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.13</version>
</dependency>
2.配置信息
log4jdbc.
=..slf4j.Slf4jSpyLogDelegator
### 设置Logger输出级别和输出目的地 ### debug更详细,如果设为info那么打印出的表数据遇到字符串就不显示,此外还有logfile
=debug,stdout
### 把日志信息输出到控制台 ###
=.
#=
=.
### 把日志信息输出到文件: ###
#=.
#=
#=.
#=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n
###显示SQL语句部分
#=DEBUG
#=DEBUG
#=DEBUG
#=DEBUG
#=DEBUG
#=DEBUG
#=DEBUG
#=DEBUG
配置文件摆放位置:
修改myBatis配置文件
MySQL
<!--不输出SQL
<property name="driver" value="" />
<property name="url" value="jdbc:mysql://..." />
-->
<!--输出SQL-->
<property name="driver" value="." />
<property name="url" value="jdbc:log4jdbc:mysql://..." />
SQLserver
<!--不输出sql的配置
<property name="driver" value="" />-->
<property name="url" value="jdbc:sqlserver://..." />-->
<!--输出sql的配置-->
<property name="driver" value="." />
<property name="url" value="jdbc:log4jdbc:sqlserver://..." />
执行SQL输出SQL
需要注意
如果配置=info,Console就不会输出SQL表里的字符串,必须是=DEBUG,Console才可以
3.定制化精简日志
如图所示打印的日志太多了,如果不需要的话很简单把不需要的日志包配置到.后即可。
=error
下面是一个只输出SQL和表数据的最精简的配置:
=DEBUG,Console
#Console
=.
=
=.
=%d [%t] %-5p [%c] - %m%n
=ERROR
=ERROR
=ERROR
#这个需要
.=ERROR
=ERROR
=ERROR
=ERROR
#这个打印SQL语句非常重要
=DEBUG
=ERROR
=FATAL
参考:
log4jdbc-log4j2配置简记logback + log4jdbc-log4j2 输出 jpa sql 参数实际value
/s/blog_5bba80460102vagg.html
/blueheart20/article/details/26471019
/zht666/article/details/7869624
/blog/1289455
/s/blog_42971b9e0100p6ua.html netbeans配置tomcat需要验证用户名口令,Tomcat Manager Application
/ycpanda/article/details/39769737
/xdp-gacl/p/
4.直接调试出SQL语句
直接在MyBatis里打断点调试出需要看的SQL
SimpleExecutor这个类下面