【MyBatis】MyBatis 的日志是如何打印的?

MyBatis 默认情况下不会打印任何日志,MyBatis 想要实现日志功能需要依靠第三方日志框架。

主要的日志实现有:

  • SLF4J
  • Log4j
  • Log4j2
  • JDK日志

MyBatis 通过实现 Log接口来支持这些日志框架:

public interface Log {    
  void debug(String message);  
  void trace(String message);
  //.. 其他方法也类似
}

MyBatis 的 DefaultLogger 实现了 Log 接口,并委托给日志实现进行日志记录。

MyBatis默认使用 SLF4J 作为日志实现。
要启用 MyBatis 日志,需要进行一下配置:

  • 引入日志依赖,如 log4j 依赖。
  • 配置 mybatis-config.xml:
<settings>
   <setting name="logImpl" value="LOG4J"/>  
</settings>
  • 指定日志实现为log4j。
  • 添加log4j.properties 配置。

Mybatis 通过 Log 记录下 SQL 语句及用时:

Executing SQL: 
         SELECT 
              * 
           FROM
           users
           WHERE
             id = ?           
Parameters: 1(Integer)  
0 rows affected 

日志级别可以通过 log4j 的配置来控制。