mybatis結(jié)合log4j打印SQL日志
mybatis結(jié)合log4j打印SQL日志
1.Maven引用jar包
默認(rèn)的mybatis不能打印出SQL日志,不便于查看調(diào)試,需要結(jié)合log4jdbc-log4j2就可以完整的輸入SQL的調(diào)試信息。
pom.xml 配置maven,注意以下3個(gè)都需要
????????org.bgee.log4jdbc-log4j2log4jdbc-log4j2-jdbc4.11.16org.slf4jslf4j-api1.7.13org.slf4jslf4j-log4j121.7.13
?
2.配置信息
log4jdbc.log4j2.prpperties
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4j.prpperties
###?設(shè)置Logger輸出級(jí)別和輸出目的地?###?debug更詳細(xì),如果設(shè)為info那么打印出的表數(shù)據(jù)遇到字符串就不顯示,此外還有l(wèi)ogfile log4j.rootLogger=debug,stdout ###?把日志信息輸出到控制臺(tái)?###? 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=jbit.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語(yǔ)句部分? #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 #log4j.logger.java.sql.ResultSet=DEBUG
?
配置文件擺放位置:
?
修改myBatis配置文件
MySQL
-->
SQLserver
-->-->
?
執(zhí)行SQL輸出SQL
?
需要注意
如果配置log4j.rootLogger=info,Console就不會(huì)輸出SQL表里的字符串,必須是log4j.rootLogger=DEBUG,Console才可以
?
3.定制化精簡(jiǎn)日志
如圖所示打印的日志太多了,如果不需要的話很簡(jiǎn)單把不需要的日志包配置到log4j.logger.后即可。
log4j.logger.org.springframework=error
下面是一個(gè)只輸出SQL和表數(shù)據(jù)的最精簡(jiǎn)的配置:
log4j.rootLogger=DEBUG,Console ?? #Console?? 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?[%t]?%-5p?[%c]?-?%m%n?? log4j.logger.org.apache=ERROR log4j.logger.org.mybatis=ERROR log4j.logger.org.springframework=ERROR #這個(gè)需要 log4j.logger.log4jdbc.debug=ERROR log4j.logger.com.gk.mapper=ERROR log4j.logger.jdbc.audit=ERROR log4j.logger.jdbc.resultset=ERROR #這個(gè)打印SQL語(yǔ)句非常重要 log4j.logger.jdbc.sqlonly=DEBUG log4j.logger.jdbc.sqltiming=ERROR log4j.logger.jdbc.connection=FATAL
?
?參考:
log4jdbc-log4j2配置簡(jiǎn)記
logback + log4jdbc-log4j2 輸出 jpa sql 參數(shù)實(shí)際value
http://blog.sina.com.cn/s/blog_5bba80460102vagg.html
http://blog.csdn.net/blueheart20/article/details/26471019
http://blog.csdn.net/zht666/article/details/7869624
http://zhenggm.iteye.com/blog/1289455
http://blog.sina.com.cn/s/blog_42971b9e0100p6ua.html?netbeans配置tomcat需要驗(yàn)證用戶名口令,Tomcat Manager Application
http://blog.csdn.net/ycpanda/article/details/39769737
http://www.cnblogs.com/xdp-gacl/p/4081848.html
4.直接調(diào)試出SQL語(yǔ)句
直接在MyBatis里打斷點(diǎn)調(diào)試出需要看的SQL
SimpleExecutor這個(gè)類下面