Spring boot 使用 MyBatis 打印日志

举报
林欣 发表于 2025/05/16 16:06:28 2025/05/16
【摘要】 在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.xmllog4j2-spring.xml进行更灵活的日志配置。
  • 注意事项:生产环境建议避免使用TRACE级别,以免日志量过大。

通过以上配置,你可以清晰地看到MyBatis执行的SQL语句、参数绑定以及结果映射过程,便于调试和优化。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。