当前位置: 首页 > news >正文

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的设置。

常见问题解决

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

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

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

高级配置建议

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

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

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

http://www.dtcms.com/a/271741.html

相关文章:

  • 微软云语音识别ASR示例Demo
  • 激活函数与损失函数:神经网络的动力引擎与导航系统
  • defer学习指南
  • 《C++初阶之内存管理》【内存分布 + operator new/delete + 定位new】
  • 启辰智慧预约团队5周年活动掠影,打造一流预约系统
  • 论文精读(一)| 量子计算系统软件研究综述
  • IoT 小程序:如何破解设备互联的碎片化困局?
  • 一条Redis命令是如何执行的?
  • 两种方式清除已经保存的git账号密码
  • 并发编程第一节
  • 【WEB】Polar靶场 Day7 详细笔记
  • 深度学习模型表征提取全解析
  • 【PyTorch】PyTorch中数据准备工作(AI生成)
  • 内置函数(Python)
  • 树莓派免密登录(vs code/cursor)
  • EFK/ELK9.0.3 windows搭建
  • 【DB2】load报错SQL3501W、SQL3109N、SQL2036N
  • 【算法训练营Day10】栈与队列part2
  • SpringBoot mybatis
  • Idea如何解决包冲突
  • P8818 [CSP-S 2022] 策略游戏
  • 【自动驾驶】经典LSS算法解析——深度估计
  • 自动驾驶决策与规划
  • Git基本操作1
  • 【C++】第四章—— 函数重载 Function Overloading 笔记
  • 2、Unity插件整合
  • 智慧物流管理:动作识别与包装检测的协同突破
  • 射频信号(大宽高比)时频图目标检测anchors配置
  • SpringBoot实现MCP
  • 【Linux网络编程】Socket - TCP