MyBatis3.2.7 log4j日志
使用log4j输出MyBatis所执行的sql日志时出现如下问题:
打算将sql日志单独分出一个文件来存储,但无论怎么配置,sql始终是输出到root文件中,
MyBatis的configuration配置文件中已经指定了使用log4j如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
你好,我现在也遇到你这样问题,我使用log4j的异步日志需要将mybatis的sql日志打印出来,我的配置是<logger name="java.sql.Connection">
<level value="debug"/>
<appender-ref ref="stdout"/>
</logger>
<logger name="java.sql.Statement">
<level value="debug"/>
<appender-ref ref="stdout"/>
</logger>
<logger name="java.sql.PreparedStatement">
<level value="debug"/>
<appender-ref ref="stdout"/>
</logger>
你上面写得,我的就打印sql日志,求交流
支持,升级到logback吧
升级了LogBack依然不行,配置中制定了sql日志需要输出至mybatis.log中,但是缺输出至了root.log里面
回复
http://www.cppblog.com/fwxjj/archive/2012/08/16/187345.html 给个教程你看看.
你的配置没错log4j 级别没办法限制日志级别为 DEBUG < INFO < WARN < ERROR < FATAL ,你为debug 那么sql 只能在debug 输出语句,而debug一下级别全部都输出到一个文件里去了,这就等于没配置.你配两个效果也一样,要么把第二个配置为info 级别,这样sql语句基本就不会输出.
建议升级到logback ,这是替代log4j的,也是同一个作者,实现你所说只输出sql 到一个文件,另一文件不输出sql ,轻轻松松配置。
找到原因了,和使用logback还是log4j没有任何关系。
Mybatis3.2.x 后sql日志的输出不能采用
<logger name="java.sql.Connection">
<level value="debug"/>
<appender-ref ref="stdout"/>
</logger>
<logger name="java.sql.Statement">
<level value="debug"/>
<appender-ref ref="stdout"/>
</logger>
<logger name="java.sql.PreparedStatement">
<level value="debug"/>
<appender-ref ref="stdout"/>
</logger>
sql的输出路径和mapper的配置文件中的命名空间有关,因此建议命名空间也和类的package是一致的