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

相关推荐
Terio_my4 小时前
Java bean 数据校验
java·开发语言·python
超级大只老咪5 小时前
何为“类”?(Java基础语法)
java·开发语言·前端
花花鱼5 小时前
spring boot项目使用tomcat发布,也可以使用Undertow(理论)
spring boot·后端·tomcat
我笑了OvO5 小时前
C++类和对象(1)
java·开发语言·c++·类和对象
weixin_436525077 小时前
Gitee - IDEA 主支 master 和分支 dev 的使用
java·ide·intellij-idea
sheji34167 小时前
【开题答辩全过程】以 YF精品视频动漫平台为例,包含答辩的问题和答案
java·eclipse
小蕾Java8 小时前
Java 开发工具,最新2025 IDEA 使用
java·ide·intellij-idea
是席木木啊8 小时前
Idea升级到2024版本:“marketplace plugins are not loaded”解决方案
java·ide·intellij-idea
胚芽鞘6818 小时前
博客标题:解密 IntelliJ IDEA 调试:当你的 List 不仅仅是 List
java·ide·intellij-idea
꒰ঌ 安卓开发໒꒱8 小时前
Java面试-并发面试(一)
java·jvm·面试