在 Spring Boot + jdbi 中记录 SQL 语句

Logging SQL statements in Spring Boot + jdbi

我在 DBI 中使用数据源:

@Autowired
DataSource dataSource;

@Bean
public DBI dbiBean() {
    DBI dbi = new DBI(dataSource);
    return dbi;
}

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

logging:
 level: 
   org.hibernate: TRACE
   org.skife.jdbi: TRACE
   java.sql: TRACE

但是没用。

添加行以像这样设置 SQL 日志。在那里使用 SLF4JLog 或其他记录器。

@Bean
public DBI dbiBean() {
    DBI dbi = new DBI(dataSource);
    dbi.setSQLLog(new SLF4JLog());
    return dbi;
}

从JDBI version 3.2.0开始,SqlLogger应该使用接口:

  Jdbi jdbi;
  jdbi.setSqlLogger(new Slf4JSqlLogger());

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

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