MyBatis - (05) 集成日志框架logback
1. 日志框架的概述
引入日志框架的目的是为了看清楚mybatis执行的具体sql。
常见的MyBatis日志框架:
- SLF4J:是一个日志标准,其中有一个框架叫做logback
- LOG4J
- LOG4J2
- STDOUT_LOGGING
- …
其中STDOUT_LOGGING是标准日志,Mybatis已经实现了这种标准日志,mybatis框架本身已经实现了这种标准。
启用标准日志组件,只需要在mybatis-config.xml文件中添加以下配置:
<settings>
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
标准日志也可以用,可以看到一些信息,比如连接对象什么时候创建,什么时候关闭,sql语句是怎样的,但是没有详细的日期,线程名字等
如果想要使用更加丰富的配置,可以集成其他的日志组件,例如:log4j,logback等。
logback是目前日志框架中性能较好的,实现了SLF4J标准(日志标准)。()
2. 集成日志框架logback
第一步:引入logback相关依赖
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
<scope>test</scope>
</dependency>
第二步:引入logback相关配置文件
配置文件的文件名必须是做logback.xml或logback-test.xml
配置文件的位置必须是类的根路径下,不能是其他位置
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!--mybatis log configure-->
<logger name="com.apache.ibatis" level="TRACE"/>
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
<!-- 日志输出级别,logback日志级别包括五个:TRACE < DEBUG < INFO < WARN < ERROR -->
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
运行测试程序,控制台输入日志信息: