Spring boot 使用 MyBatis 打印日志
【摘要】 在Spring Boot中使用MyBatis时,可以通过在application.properties文件中配置日志相关的属性来打印SQL日志、参数以及执行结果等信息。以下是具体的配置项和说明: 1. 配置MyBatis日志级别MyBatis的日志输出依赖于底层日志框架(如Logback、Log4j2等)。首先需要确保项目中已引入相应的日志依赖(Spring Boot默认使用Logback)...
在Spring Boot中使用MyBatis时,可以通过在application.properties
文件中配置日志相关的属性来打印SQL日志、参数以及执行结果等信息。以下是具体的配置项和说明:
1. 配置MyBatis日志级别
MyBatis的日志输出依赖于底层日志框架(如Logback、Log4j2等)。首先需要确保项目中已引入相应的日志依赖(Spring Boot默认使用Logback)。
在application.properties
中配置MyBatis的日志实现和日志级别:
# 指定MyBatis使用的日志实现(可选,通常不需要显式配置,Spring Boot会自动适配)
# mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
# 配置日志级别(推荐使用Logback或Log4j2的配置文件,但也可以通过properties临时调整)
logging.level.org.mybatis=DEBUG # MyBatis核心日志
logging.level.com.yourpackage.mapper=TRACE # 你的Mapper接口包路径(TRACE级别会输出SQL和参数)
2. 配置数据源日志(如HikariCP)
如果使用HikariCP作为数据源,可以配置其日志级别以监控连接池行为:
logging.level.com.zaxxer.hikari=DEBUG
3. 配置JDBC日志(可选)
如果需要更底层的JDBC日志(如SQL参数绑定),可以配置底层驱动的日志:
# 例如,使用MySQL驱动时
logging.level.com.mysql.cj.jdbc=DEBUG
4. 推荐完整配置示例
# 日志配置(推荐在logback-spring.xml中详细配置,此处为properties简写)
logging.level.org.mybatis=DEBUG
logging.level.com.yourpackage.mapper=TRACE # 替换为你的Mapper接口包路径
logging.level.com.zaxxer.hikari=DEBUG # 连接池日志
# MyBatis配置(可选)
mybatis.configuration.log-prefix=DAO. # 日志前缀(可选)
5. 更推荐的方式:使用Logback/Log4j2配置文件
由于application.properties
对日志的配置能力有限,建议通过专门的日志配置文件(如logback-spring.xml
)进行更精细的控制。例如:
Logback示例 (logback-spring.xml
)
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- MyBatis日志 -->
<logger name="org.mybatis" level="DEBUG"/>
<logger name="com.yourpackage.mapper" level="TRACE"/> <!-- 输出SQL和参数 -->
<!-- 连接池日志 -->
<logger name="com.zaxxer.hikari" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
6. 关键日志级别说明
- DEBUG:输出MyBatis的核心日志(如SQL语句)。
- TRACE:输出更详细的日志(包括SQL参数绑定和结果映射)。
- INFO/WARN/ERROR:常规日志级别,通常不包含SQL细节。
7. 验证配置
启动应用后,检查控制台或日志文件,应能看到类似以下输出:
DEBUG c.y.m.UserMapper.selectById - ==> Preparing: SELECT id, name FROM user WHERE id = ?
DEBUG c.y.m.UserMapper.selectById - ==> Parameters: 1(Integer)
TRACE c.y.m.UserMapper.selectById - <== Total: 1
总结
- 核心配置:在
application.properties
中设置logging.level.com.yourpackage.mapper=TRACE
。 - 推荐方式:使用
logback-spring.xml
或log4j2-spring.xml
进行更灵活的日志配置。 - 注意事项:生产环境建议避免使用
TRACE
级别,以免日志量过大。
通过以上配置,你可以清晰地看到MyBatis执行的SQL语句、参数绑定以及结果映射过程,便于调试和优化。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)