
mybatis默认使用log4j,当有self4j这个日志jar包存在时会无法打印sql,请移除或者在工程启动时显示设置mybatis使用的日志类:
log4jloggerorgapacheibatis=debug,stdout log4jloggerjavasql=debug,stdout
这样有时可能却不是个可行的办法,原因在于不可能移除self4j包,因为其他依赖包必须依赖这个包。 mybatis有如下方法来手动选择日志类,调用后成功打印日志 如果引用了slf4j的包,并且要使用log4j需要加入slf4j-log4j12的包,如果没有加入slf4j-log4j12的包是无法打印sql的。。具体log4j文件如下:
log4jrootCategory=info, stdout , R
log4jappenderstdout=orgapachelog4jConsoleAppender
log4jappenderstdoutlayout=orgapachelog4jPatternLayout
log4jappenderstdoutlayoutConversion
Pattern=[QC] %p [%t] %C%M(%L) | %m%n
log4jappenderR=orgapachelog4jDailyRollingFileAppender
log4jappenderRFile=D:\\reportlog
log4jappenderRlayout=orgapachelog4jPatternLayout
log4jappenderRlayoutConversionPattern=%d-[TS] %p %t %c - %m%n
log4jloggercomibatis=debug
log4jloggercomibatiscommonjdbcSimpleDataSource=debug
log4jloggercomibatiscommonjdbcScriptRunner=debug
log4jloggercomibatissqlmapengineimplSqlMapClientDelegate=debug
log4jloggerjavasqlConnection=debug
log4jloggerjavasqlStatement=debug
log4jloggerjavasqlPreparedStatement=debug,stdout
现在重启tomcat,执行一条语句看看,sql是不是都出来了
最常用的 log4jproperties 来实现。
log4jproperties 内容如下:
log4jrootCategory=info, stdout , R
log4jappenderstdout=orgapachelog4jConsoleAppender
log4jappenderstdoutlayout=orgapachelog4jPatternLayout
log4jappenderstdoutlayoutConversionPattern=[QC] %p [%t] %C%M(%L) | %m%n
log4jappenderR=orgapachelog4jDailyRollingFileAppender
log4jappenderRFile=D:/my_loglog
log4jappenderRlayout=orgapachelog4jPatternLayout
log4jappenderRlayoutConversionPattern=%d-[TS] %p %t %c - %m%n
log4jloggercomibatis=debug
log4jloggercomibatiscommonjdbcSimpleDataSource=debug
log4jloggercomibatiscommonjdbcScriptRunner=debug
log4jloggercomibatissqlmapengineimplSqlMapClientDelegate=debug
log4jloggerjavasqlConnection=debug
log4jloggerjavasqlStatement=debug
log4jloggerjavasqlPreparedStatement=debug,stdout
有人在网上说不能用 slf4jjar ,这个说法应该是错误的, slf4j 只是提供了很多接口,可以供很多日志系统用,并不是具体的解决方案,我的jar 包用到
slf4j-api-158jar
slf4j-log4j12-158jar
log4j-1215jar
貌似版本比较老,但可以使用,可以参考一下。
通过这种方式mybatis 就可以在控制台打印出sql语句,并且也可以写到日志文件中去。但是还没有format sql, 我也在研究,不过目前没进展,应该mybatis 不支持吧。
以上就是关于如何让mybatis打印出执行的sql全部的内容,包括:如何让mybatis打印出执行的sql、如何在mybatis中调试查看生成的sql语句、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)