MyBatis集成Logback日志全攻略
MyBatis集成Logback日志框架的完整步骤如下:
1. 添加依赖
在Maven项目的pom.xml中添加Logback和SLF4J依赖:
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.13</version>
</dependency>
注意:Spring Boot项目默认已包含Logback,无需额外添加。
2. MyBatis日志配置
在mybatis-config.xml中指定日志实现(可选):
<settings><setting name="logImpl" value="SLF4J"/>
</settings>
若不配置,MyBatis会自动检测可用的日志框架。
3. 创建logback.xml配置文件
在resources目录下创建logback.xml,基础配置示例:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds"><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 单独配置MyBatis的SQL日志 --><logger name="org.mybatis" level="DEBUG" additivity="false"><appender-ref ref="CONSOLE"/></logger><root level="INFO"><appender-ref ref="CONSOLE"/></root>
</configuration>
关键配置说明:
name="org.mybatis"
捕获MyBatis日志level="DEBUG"
显示SQL语句和参数- 彩色日志需添加Spring Boot的ColorConverter
4. Spring Boot集成(可选)
在application.yml中添加:
logging:level:com.yourpackage.mapper: DEBUG
mybatis:configuration:log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
此配置会覆盖mybatis-config.xml的设置。
常见问题解决
-
日志冲突:排除Lombok中的logback依赖
<exclusions><exclusion><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId></exclusion> </exclusions>
-
日志文件分离:通过不同appender将业务日志和SQL日志输出到不同文件
-
日志级别:生产环境建议将MyBatis日志设为DEBUG,root日志设为WARN
高级配置建议
-
按包区分日志:为不同DAO包设置不同日志级别
<logger name="com.example.user.mapper" level="TRACE"/> <logger name="com.example.order.mapper" level="DEBUG"/>
-
日志滚动策略:添加TimeBasedRollingPolicy避免日志文件过大
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>logs/sql-%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory> </rollingPolicy>
-
彩色日志:集成spring-boot-starter-logging实现终端彩色输出
通过以上配置,即可实现MyBatis与Logback的完整集成,既能查看详细的SQL执行信息,又能保持日志系统的统一管理。