MyBatis集成Logback日志全攻略

MyBatis集成Logback日志框架的完整步骤如下:

1. 添加依赖

在Maven项目的pom.xml中添加Logback和SLF4J依赖:

xml 复制代码
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.13</version>
</dependency>

注意:Spring Boot项目默认已包含Logback,无需额外添加。

2. MyBatis日志配置

在mybatis-config.xml中指定日志实现(可选):

xml 复制代码
<settings>
    <setting name="logImpl" value="SLF4J"/>
</settings>

若不配置,MyBatis会自动检测可用的日志框架。

3. 创建logback.xml配置文件

在resources目录下创建logback.xml,基础配置示例:

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中添加:

yaml 复制代码
logging:
  level:
    com.yourpackage.mapper: DEBUG
mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl

此配置会覆盖mybatis-config.xml的设置。

常见问题解决

  1. 日志冲突:排除Lombok中的logback依赖

    xml 复制代码
    <exclusions>
        <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </exclusion>
    </exclusions>
  2. 日志文件分离:通过不同appender将业务日志和SQL日志输出到不同文件

  3. 日志级别:生产环境建议将MyBatis日志设为DEBUG,root日志设为WARN

高级配置建议

  1. 按包区分日志:为不同DAO包设置不同日志级别

    xml 复制代码
    <logger name="com.example.user.mapper" level="TRACE"/>
    <logger name="com.example.order.mapper" level="DEBUG"/>
  2. 日志滚动策略:添加TimeBasedRollingPolicy避免日志文件过大

    xml 复制代码
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>logs/sql-%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
  3. 彩色日志:集成spring-boot-starter-logging实现终端彩色输出

通过以上配置,即可实现MyBatis与Logback的完整集成,既能查看详细的SQL执行信息,又能保持日志系统的统一管理。

相关推荐
寻星探路7 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
曹牧9 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
爬山算法10 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty72510 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎10 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄10 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
忆~遂愿10 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
小韩学长yyds10 小时前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable
java·序列化
仟濹10 小时前
【Java基础】多态 | 打卡day2
java·开发语言