欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis:关于日志输出到控制台问题问题

程序员文章站 2022-07-03 12:36:19
...

在使用Mybatis并且配置log4j文件后发现组合的sql语句并没有打印到控制台

原因:Mybatis支持的几种日志工具的使用有优先级
查看Mybatis的官方文档的logging模块,日志工具优先级如下:

  • SLF4J
  • Apache Commons Logging
  • Log4j 2
  • Log4j
  • JDK logging

Mybatis会从上到下搜索日志工具,并把找到的第一个工具默认使用。
所以我们配置的log4j文件其实并没有用到。

解决办法:在Mybatis的配置文件(例如:mybatis-config文件)中添加setting配置选择日志文件

例:

<configuration>
  <settings>
    ...
    <setting name="logImpl" value="LOG4J"/>
    ...
  </settings>
</configuration>

logImpl可选的值有:SLF4J、LOG4J、LOG4J2、JDK_LOGGING、COMMONS_LOGGING、STDOUT_LOGGING、NO_LOGGING 或者是实现了接口org.apache.ibatis.logging.Log的类的完全限定类名, 并且这个类的构造函数需要是以一个字符串(String类型)为参数的。 (可以参考org.apache.ibatis.logging.slf4j.Slf4jImpl.java的实现)