MyBatis3.2.7 log4j日志

发布于 2021-11-23 11:38:01 字数 169 浏览 790 评论 6

使用log4j输出MyBatis所执行的sql日志时出现如下问题:

打算将sql日志单独分出一个文件来存储,但无论怎么配置,sql始终是输出到root文件中, 

MyBatis的configuration配置文件中已经指定了使用log4j 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

瑾夏年华 2021-11-29 21:25:53

你好,我现在也遇到你这样问题,我使用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日志,求交流

琴流音 2021-11-29 19:16:09

支持,升级到logback吧

一人独醉 2021-11-29 18:23:40

升级了LogBack依然不行,配置中制定了sql日志需要输出至mybatis.log中,但是缺输出至了root.log里面

夜司空 2021-11-28 20:11:25

回复
http://www.cppblog.com/fwxjj/archive/2012/08/16/187345.html 给个教程你看看.

成熟稳重的好男人 2021-11-28 11:08:55

你的配置没错log4j  级别没办法限制日志级别为 DEBUG < INFO < WARN < ERROR < FATAL  ,你为debug 那么sql 只能在debug 输出语句,而debug一下级别全部都输出到一个文件里去了,这就等于没配置.你配两个效果也一样,要么把第二个配置为info 级别,这样sql语句基本就不会输出. 

建议升级到logback ,这是替代log4j的,也是同一个作者,实现你所说只输出sql 到一个文件,另一文件不输出sql ,轻轻松松配置。

终陌 2021-11-26 22:12:25

找到原因了,和使用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是一致的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文