springboot配置mybatis debug的sql日志输出
文章目录
- 前置
- 配置
- 输出样例
- 建议
前置
你使用:
- springboot
- java
- mybatis
- log4j2 日志
配置
在 src/main/resources/log4j2.xml 中配置 MyBatis Mapper 包的日志级别为 DEBUG,并指定输出目标(控制台或文件)
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"><Appenders><!-- 控制台输出 --><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/></Console></Appenders><Loggers><!-- 根日志级别 --><Root level="INFO"><AppenderRef ref="Console"/></Root><!-- MyBatis Mapper 包的 SQL 日志(DEBUG 级别) --><Logger name="com.example.mapper" level="DEBUG" additivity="false"><AppenderRef ref="Console"/></Logger><!-- MyBatis 核心日志(DEBUG) --><Logger name="org.mybatis" level="DEBUG" additivity="false"><AppenderRef ref="Console"/></Logger><!-- JDBC 底层日志(TRACE,可选) --><Logger name="java.sql" level="TRACE" additivity="false"><AppenderRef ref="Console"/></Logger></Loggers>
</Configuration>
additivity=“false” 表示不将日志传递给父级 Logger(避免重复输出)
输出样例
DEBUG [main] com.example.mapper.UserMapper - ==> Preparing: SELECT * FROM users WHERE id = ?
DEBUG [main] com.example.mapper.UserMapper - ==> Parameters: 1(Long)
DEBUG [main] com.example.mapper.UserMapper - <== Total: 1
建议
实际开发中,生产/开发/测试环境,不同的环境对应各自的 log4j2.xml
开发测试环境你可以配置上这个,方便快速定位问题,生产环境不建议开启,开也是临时开启为了排查线上问题