在 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 日志及其结果。