开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第35天,点击查看活动详情
MyBatis中的日志配置
上一篇文章我们讲完了映射文件,映射文件将xml中的insert、upadte、select、delete语句和Java类中的方法对应起来。在映射文件里还可以配置结果集和Java对象的映射,数据库字段和Java属性也是在这里配置的。
有了映射文件和接口之后,我们就可以从MyBatis中获取Mapper对象,通过操作mapper对象将绑定的SQL语句发送给数据库。在程序运行的过程中,MyBatis发送了什么语句,有可能我们需要看到,帮助排查问题,所以MyBatis提供了日志功能。接下来看下MyBatis中是怎么配置日志的。
Mybatis 通过使用内置的日志工厂提供日志功能。内置的日志支持以下几种日志:
- SLF4J
- Apache Commons Logging
- Log4j 2
- Log4j (3.5.9 起废弃)
- JDK logging
MyBatis是通过反射进行日志实现获取的,我们只需要将日志包引入到类路径中,MyBatis就可以进行日志记录,否则什么都不记录。
如果路径中引入了多个实现,那MyBatis会使用以上出现的顺序,第一个出现的将会被使用,如果想使用特定的日志,则需要在配置文件中加入自己的配置,如下:
<configuration>
<settings>
...
<setting name="logImpl" value="LOG4J"/>
...
</settings>
</configuration>
启用步骤
启用MyBatis的日志首先要引入包,这里以SLF4J(Logback) 为例,如果你用Maven的话,可以在pom文件中加入以下内容:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.x.x</version>
</dependency>
第二步,配置Logback,需要新增一个配置文件logback.xml,具体的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%5level [%thread] - %msg%n</pattern>
</encoder>
</appender>
<logger name="org.mybatis.example.BlogMapper">
<level value="trace"/>
</logger>
<root level="error">
<appender-ref ref="stdout"/>
</root>
</configuration>
添加完成以后,MyBatis就会在控制台打印出发出的SQL语句了,其它日志的配置同理,有需要可以参考官方文档。