MyBatis 的日志实现方式有几种?

MyBatis 支持多种日志实现方式:

  1. SLF4J
    使用 SLF4J 作为日志 facde,最终还需要结合底层的日志框架。
    依赖:
<dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis-spring</artifactId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>

配置:

<settings>   
   <setting name="logImpl" value="SLF4J"/>
</settings>
  1. Log4j
    使用 Apache 的 Log4j 作为日志实现。
    依赖:
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

配置:

<settings>  
   <setting name="logImpl" value="LOG4J"/>
</settings>
  1. Log4j2
    使用 Log4j2 日志框架。
    配置与 Log4j 类似。
  2. JDK Logging
    使用 JDK 自带的 Logging 作为日志实现。
    配置:
<settings>
   <setting name="logImpl" value="JDK_LOGGING"/>
</settings>
  1. Commons Logging
    使用 Apache Commons Logging 作为日志实现。

根据以上配置,MyBatis 会委托给相应的日志实现框架进行日志打印。
MyBatis 默认使用 SLF4J 作为日志抽象层,需要应用程序去选择真正的日志实现。