gpt4 book ai didi

java - 带有 spring-mybatis 的 spring-boot - 如何强制它记录所有 SQL 查询

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:41 24 4
gpt4 key购买 nike

我有一个简单的 spring-boot-mybatis 应用程序(请记住)。 Mybatis 仅在失败(异常)的情况下记录 SQL 查询。请告诉我,如何强制它将所有 SQL 查询记录到控制台?

此时我正在使用slf4j记录器(由spring-boot自动配置)。
我找到这个链接:http://www.mybatis.org/mybatis-3/logging.html
但是我没有设法遵循它。首先显示了 log4j 的配置,我不确定我是否正确理解:在 application.properties 中配置是否足够?

提前致谢

最佳答案

Spring Boot 使用 logback 作为 Slf4j 的默认日志记录提供程序。 Ibatis 内部日志工厂加载 SLF4j 作为首选日志记录器。您所要做的就是配置您的 spring boot 记录器以发布 ibatis 映射器的日志消息。

在启动应用程序属性中添加以下行。

logging.level.org.springframework=WARN
logging.level.com.spring.ibatis.UserMapper=DEBUG
logging.file=logs/spring-boot-logging.log

第二行是为 ibatis mapper 定义 DEBUG 日志级别的日志条目。 com.spring.ibatis 是包,UserMapper 是示例映射器。

以下日志将开始出现在控制台和 spring-boot-logging 文件中。这些是 ApplicationTest 类的 saveUserfindByName 方法生成的日志消息。

2016-12-19 22:07:06.358  INFO 7248 --- [main] com.spring.ibatis.ApplicationTest        : Started ApplicationTest in 3.048 seconds (JVM running for 4.209)
2016-12-19 22:07:06.424 DEBUG 7248 --- [main] com.spring.ibatis.UserMapper.saveUser : ==> Preparing: insert into users(name) values(?)
2016-12-19 22:07:06.444 DEBUG 7248 --- [main] com.spring.ibatis.UserMapper.saveUser : ==> Parameters: ibatis(String)
2016-12-19 22:07:06.445 DEBUG 7248 --- [main] com.spring.ibatis.UserMapper.saveUser : <== Updates: 1
2016-12-19 22:07:06.457 DEBUG 7248 --- [main] com.spring.ibatis.UserMapper.findByName : ==> Preparing: select name from users WHERE name=?
2016-12-19 22:07:06.470 DEBUG 7248 --- [main] com.spring.ibatis.UserMapper.findByName : ==> Parameters: ibatis(String)
2016-12-19 22:07:06.504 DEBUG 7248 --- [main] com.spring.ibatis.UserMapper.findByName : <== Total: 1

您当然可以配置任何您想要的记录器。如果您需要,我可以轻松地为任何其他记录器添加示例。

您可以在以下位置找到包含 Junit 测试用例的完整代码 https://github.com/saagar2000/ibatis

关于java - 带有 spring-mybatis 的 spring-boot - 如何强制它记录所有 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41001188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com