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执行信息,又能保持日志系统的统一管理。

相关推荐
爱吃苹果的日记本9 小时前
JAVA十三(练习课)
java·学习
磐链科技9 小时前
交易所开发全流程指南:从需求分析到上线运维的完整路线图
java
無限進步D9 小时前
Java Web 前端 简介
java·开发语言·前端·css·html·css3·web
聪明蛋子哟9 小时前
从LangChain到LangGraph:Python与Java双栈Agent开发实战对比
java·ai·langchain
三8449 小时前
Java 模板注入(FreeMarker)· 04 · 利用与绕过:payload 全集
java·web安全·freemarker·payload
leikooo9 小时前
ARTS 0913: 双栈互补实现队列、CIDR 聚合化解路由膨胀与 AI 作弊串通绝非偶然 Bug
java·链表·个人开发
星间都市山脉10 小时前
Android16 SystemService.onBootPhase 调用时机
android·java·linux·windows·ubuntu
深入云栈10 小时前
Netty 4.2.x 源码深度解析 (十三):Epoll 传输 —— Linux 高性能 IO 的 Netty 实现
java·后端
ynchyong10 小时前
Linux nohup 后台服务合并标准错误输出到一个文件
java·linux·运维
用户31268748772010 小时前
Lombok 的 @Data 到底怎么工作的?Java 注解处理器实战全链路拆解
java