spring boot 项目打印sql日志和结果,使用logback或配置文件

在 Spring Boot 项目中使用 MyBatis 或 MyBatis-Plus 作为持久化框架时,你可以通过配置 Logback 来打印 SQL 日志及其结果。以下是一些具体的步骤和配置示例:

配置 Logback 以打印 MyBatis 或 MyBatis-Plus 的 SQL 日志
  1. 创建或修改 Logback 配置文件:

    在src/main/resources目录下创建或修改logback-spring.xml文件(Spring Boot 会优先加载这个文件,如果没有则加载logback.xml)。

  2. 添加 MyBatis 或 MyBatis-Plus 的 Logger 配置:

    在 Logback 配置文件中,你需要为 MyBatis 或 MyBatis-Plus 的相关包添加 logger 配置。以下是一个示例配置,它会在控制台打印 SQL 语句和参数:

    xml复制代码

    <configuration>

    <!-- 其他配置 -->

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

    <encoder>

    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>

    </encoder>

    </appender>

    <!-- 打印 MyBatis 或 MyBatis-Plus 的 SQL 语句和参数 -->

    <logger name="com.yourpackage.mapper" level="DEBUG" additivity="false">

    <appender-ref ref="STDOUT" />

    </logger>

    <!-- 如果使用 MyBatis-Plus,可以添加以下配置来捕获更多日志 -->

    <logger name="com.baomidou.mybatisplus" level="DEBUG" />

    <!-- 根 logger 配置 -->

    <root level="INFO">

    <appender-ref ref="STDOUT" />

    </root>

    </configuration>

    请注意,你需要将com.yourpackage.mapper替换为你自己的 Mapper 接口所在的包名。

  3. 配置 MyBatis 或 MyBatis-Plus:

    在application.properties或application.yml文件中,你可以配置 MyBatis 或 MyBatis-Plus 的日志实现。虽然 Logback 的配置已经能够捕获 SQL 日志,但你也可以通过以下方式显式设置日志实现:

    • 对于 MyBatis:

      properties复制代码

      mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

      或者,在mybatis-config.xml中配置:

      xml复制代码

      <configuration>

      <settings>

      <setting name="logImpl" value="STDOUT_LOGGING"/>

      </settings>

      </configuration>

    • 对于 MyBatis-Plus:

      properties复制代码

      mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

    然而,请注意,这些设置通常不是必需的,因为 Logback 的配置已经足够捕获 SQL 日志。这些设置更多地是为了在没有使用Logback 或需要显式指定日志实现时使用。

  4. 重启应用程序:

    修改配置后,重启你的 Spring Boot 应用程序以使更改生效。

  5. 验证日志输出:

    运行你的应用程序并执行一些数据库操作,然后检查控制台以确认 SQL 日志和参数是否正确打印。

注意事项
  • 确保你的 Mapper 接口和 XML 映射文件(如果使用)已经正确配置,并且能够被 Spring Boot 扫描到。
  • 如果你的项目中有多个数据源或使用了复杂的配置,请确保你的 Logback 配置能够正确地捕获所有相关的日志。
  • 如果你的 SQL语句很长或包含敏感信息,你可能需要调整 Logback的配置以限制日志输出的长度或隐藏敏感信息。

通过以上步骤,你应该能够在 Spring Boot 项目中使用 Logback 打印 MyBatis 或 MyBatis-Plus 的 SQL 日志及其结果。

相关推荐
freejackman9 小时前
【实战二】字段级血缘追踪:拆解 AST 迷局,精准穿透函数链与子查询
大数据·数据库·sql
计算机毕设定制辅导-无忧学长10 小时前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统
小郎君65816 小时前
注解式脱敏:用 Jackson 的 ContextualSerializer 做字段级策略(一)
spring boot·spring cloud
jktantan18 小时前
注解式脱敏:用 Jackson 的 ContextualSerializer 做字段级策略(一)
spring boot·后端·算法·spring cloud·系统架构
露天赏雪1 天前
第3篇:Sentinel熔断降级实战:大模型接口抖动时的服务兜底方案
java·开发语言·人工智能·spring boot·spring·servlet·sentinel
骑着蜗牛撵大象3271 天前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
zhengfei6112 天前
Go-fastdfs /reload 未授权访问: 有效PoC
数据库·sql
大维2 天前
DBX 实测:从 SQLite 查询到 MiniMax-M3 自然语言生成 SQL
数据库·sql·sqlite
蜗牛8752 天前
为 Spring Boot 团队做一个 Elasticsearch 查询工作台:六种模式、语义补全与浏览器直连
spring boot
景煜拾年2 天前
InnoAI SQL 助手
运维·数据库·笔记·sql