在 Spring Boot + jdbi 中记录 SQL 语句

Mar*_*ski 3 logging spring jdbi spring-boot

我正在使用带有 DBI 的数据源:

@Autowired
DataSource dataSource;

@Bean
public DBI dbiBean() {
    DBI dbi = new DBI(dataSource);
    return dbi;
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何配置日志框架来记录 SQL 语句。我试过:

logging:
 level: 
   org.hibernate: TRACE
   org.skife.jdbi: TRACE
   java.sql: TRACE
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

oui*_*uid 6

从JDBI 3.2.0版本开始,应使用SqlLogger接口:

  Jdbi jdbi;
  jdbi.setSqlLogger(new Slf4JSqlLogger());
Run Code Online (Sandbox Code Playgroud)

正如文档所述,Slf4JSqlLogger是一个简单的 SqlLogger,它发出一些有关 Jdbi 使用情况的诊断信息。您可以LoggerSlf4JSqlLogger构造函数提供 Slf4J 类的现有实例,然后提供的记录器将用于记录 SQL 语句,否则,如果使用无参数构造函数,org.jdbi.sql将创建并使用名为 的记录器。

SQL 语句使用debug日志级别进行记录,因此为了查看它们,可能需要将日志记录框架的根级别设置为debug