mybatis怎么配置log4j打印出sql语句

 我来答
yangcheng33
2017-05-04 · TA获得超过996个赞
知道小有建树答主
回答量:490
采纳率:60%
帮助的人:263万
展开全部
在程序调试时mybatis并没有hibernate所提供的showsql功能,只能通过配置log4j日志输出级别的方式来打印sql。但网上搜到的答案几乎都是下面的配置方式:

log4j.rootLogger=info,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
###显示SQL语句部分
log4j.logger.com.ibatis=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=DEBUG12345678910111234567891011

rootLogger的级别是info,防止其他地方输出debug的调试代码(rootLogger若设为debug了,mybatis也没必要再设置了)。但这段代码根本没有作用!不知是不是我使用的jar包版本比较新的缘故(3.4.1)。经过一系列的尝试,终于找到了解决方案,直接修改dao层的输出级别即可:

<loggers>
<Logger name="com.github.vita.code.dao" level="trace" />
<root level="info">
<appender-ref ref="Console"/>
</root>
</loggers>123456123456

上面的是log4j 2的XML配置,1中对应的为log4j.logger.com.github.vita.code.dao=trace。这儿把输出调成了更低的trace,可以看到更详细的信息。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式