Estoy usando fuente de datos con DBI:
@Autowired DataSource dataSource; @Bean public DBI dbiBean() { DBI dbi = new DBI(dataSource); return dbi; }
No tengo idea de cómo configurar el marco de registro para registrar declaraciones SQL. Lo intenté:
logging: level: org.hibernate: TRACE org.skife.jdbi: TRACE java.sql: TRACE
pero no funciona
Agregue la línea para configurar el registro SQL de esta manera. Use SLF4JLog u otro registrador allí.
@Bean public DBI dbiBean() { DBI dbi = new DBI(dataSource); dbi.setSQLLog(new SLF4JLog()); return dbi; }
A partir de la versión 3.2.0 de JDBI , se debe utilizar la interfaz SqlLogger:
Jdbi jdbi; jdbi.setSqlLogger(new Slf4JSqlLogger());
Como dice la documentación, Slf4JSqlLogger es un SqlLogger simple que emite información de diagnóstico sobre el uso de Jdbi. Puede proporcionar una instancia existente de la clase Slf4J Logger
al constructor Slf4JSqlLogger
, luego el registrador proporcionado se usará para registrar sentencias SQL; de lo contrario, si se usa un constructor sin argumentos, se creará y usará un registrador llamado org.jdbi.sql
.
Las instrucciones SQL se registran con el nivel de registro de debug
, por lo que para verlas puede ser necesario establecer el nivel raíz del marco de registro en debug
.