mybatis日志分析
初始化:org.apache.ibatis.logging.LogFactory
mybatis内置日志工厂提供日志功能,提供很多日志的实现类,用来记录日志,取决于初始化的时候按顺序load到的class。默认是用Slf4j(第一个)
1 | static { |
没有则继续找:
1 | private static void tryImplementation(Runnable runnable) { |
Mybatis 中 SQL 语句的日志级别被设为DEBUG(JDK 日志设为 FINE)
默认情况下,mybatis+spring5不会打印输出mybatis日志,这是因为集成后spring5默认的日志是spring-jcl 最终选择的是jul,而jul默认日志级别为info,所以也不会打印Mybatis执行的日志。并且sql执行日志是debug级别。
可以加入log4j2的包,不用做任何更改就可以打印日志。
如果加入log4j包,并且配置mybatis选择使用该日志就可以。如:
1 |
|
如果加入log4j2就会打印,spring5使用了log4j默认是用log4j2。注意修改日志配置的级别。
这都是使用java配置方式,xml不做讨论。
此外,也可以扩展通过默认的方式打印日志信息。
自定义扩展类:
1 | public class MyLog implements org.apache.ibatis.logging.Log { |
使用:
1 |
|