使用spring-mybatis进行Spring-boot - 如何强制它记录所有SQL查询

8 java spring spring-boot spring-mybatis

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

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

提前致谢

use*_*814 16

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

在引导应用程序属性中添加以下行.

logging.level.org.springframework=WARN
logging.level.com.spring.ibatis.UserMapper=DEBUG
logging.file=logs/spring-boot-logging.log
Run Code Online (Sandbox Code Playgroud)

第二行是您使用DEBUG日志级别为ibatis映射器定义日志记录条目的位置.com.spring.ibatis是包和UserMapper样本映射器.

以下日志将开始出现在控制台和spring-boot-logging文件中.这些是从类生成的日志消息saveUser和类的findByName 方法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
Run Code Online (Sandbox Code Playgroud)

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

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