小编典典

使用spring-mybatis的Spring-boot-如何强制其记录所有SQL查询

spring-boot

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

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

提前致谢


阅读 510

收藏
2020-05-30

共1个答案

小编典典

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

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

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

第二行是您使用DEBUG日志级别定义ibatis映射器的日志记录条目的地方。com.spring.ibatis是包,UserMapper是示例映射器。

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

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

您当然可以配置所需的任何记录器选择。我可以轻松为您需要的任何其他记录器添加示例。

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

2020-05-30