在 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
。
我在 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
。