在 Spring Boot 项目中使用 MyBatis 或 MyBatis-Plus 作为持久化框架时,你可以通过配置 Logback 来打印 SQL 日志及其结果。以下是一些具体的步骤和配置示例:
配置 Logback 以打印 MyBatis 或 MyBatis-Plus 的 SQL 日志
-
创建或修改 Logback 配置文件:
在
src/main/resources目录下创建或修改logback-spring.xml文件(Spring Boot 会优先加载这个文件,如果没有则加载logback.xml)。 -
添加 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 接口所在的包名。 -
配置 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 或需要显式指定日志实现时使用。
-
-
重启应用程序:
修改配置后,重启你的 Spring Boot 应用程序以使更改生效。
-
验证日志输出:
运行你的应用程序并执行一些数据库操作,然后检查控制台以确认 SQL 日志和参数是否正确打印。
注意事项
- 确保你的 Mapper 接口和 XML 映射文件(如果使用)已经正确配置,并且能够被 Spring Boot 扫描到。
- 如果你的项目中有多个数据源或使用了复杂的配置,请确保你的 Logback 配置能够正确地捕获所有相关的日志。
- 如果你的 SQL语句很长或包含敏感信息,你可能需要调整 Logback的配置以限制日志输出的长度或隐藏敏感信息。
通过以上步骤,你应该能够在 Spring Boot 项目中使用 Logback 打印 MyBatis 或 MyBatis-Plus 的 SQL 日志及其结果。