Después de seguir varios ejemplos y leer la documentación de Spring Boot, todavía no puedo habilitar las estadísticas de hibernación. Estoy configurando la propiedad en el archivo application.properties. Ejecutar la aplicación Spring Boot a través de una prueba de integración o Application.java no produce estadísticas.
Mi archivo application.properties .
spring.datasource.jdbcUrl=jdbc:postgresql://localhost:5432/postgres spring.datasource.username = postgres spring.datasource.password = password spring.datasource.driver-class-name=org.postgresql.Driver spring.datasource.platform=postgres spring.datasource.testWhileIdle = true spring.datasource.validationQuery = SELECT 1 spring.jpa.properties.hibernate.show_sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.generate_statistics=true logging.level.org.hibernate.SQL=TRACE logging.level.org.hibernate.stat=TRACE logging.file=transaction-app.loglogback-primavera.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration>Y mi prueba de integración
@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class SqlMappingTest { @Autowired PlanService planService; @org.junit.Test public void findAll() { List<Plan> plans = planService.findAll(); Assert.assertEquals(1, plans.size()); } }¿Qué me estoy perdiendo?
Funciona para mí (usando Spring Boot 2.1.6.RELEASE).
a) En el archivo application.properties:
spring.jpa.properties.hibernate.generate_statistics=trueb) Asegúrese de que el nivel de depuración en tiempo de ejecución para 'org.hibernate.stat' sea al menos DEBUG:
curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "DEBUG"}' http://localhost:8080/actuator/loggers/org.hibernate.statc) Verifique en el registro algo como:
2019-07-03 21:27:27.739 DEBUG 11797 --- [nio-8080-exec-3] ohstat.internal.StatisticsImpl : HHH000117: HQL: select count(*) from AppRequest x WHERE x.uuid = :uuid, time: 1ms, rows: 1No estoy seguro si lo siguiente es correcto, pero funcionó. Estoy forzando las propiedades en mi LocalContainerEntityManagerFactoryBean con construcción.
Fragmento de DatabaseConfig:
@Configuration @EnableTransactionManagement @ConfigurationProperties(prefix = "spring.datasource") public class DatabaseConfig extends HikariConfig { @Autowired @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, Environment env) { LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean(); entityManagerFactory.setDataSource(dataSource); // Classpath scanning of @Component, @Service, etc annotated class entityManagerFactory.setPackagesToScan(new String[]{"com.test"}); // Vendor adapter HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); entityManagerFactory.setJpaVendorAdapter(vendorAdapter); Properties jpaProperties = new Properties(); jpaProperties.put("hibernate.show_sql", env.getRequiredProperty("spring.jpa.properties.hibernate.show_sql") ); jpaProperties.put("hibernate.format_sql", env.getRequiredProperty("spring.jpa.properties.hibernate.format_sql") ); jpaProperties.put("hibernate.generate_statistics", env.getRequiredProperty("spring.jpa.properties.hibernate.generate_statistics") ); entityManagerFactory.setJpaProperties(jpaProperties); return entityManagerFactory; } }Después de la configuración
2017-03-16 11:41:02.881 DEBUG 7884 --- [main] ohsinternal.ConcurrentStatisticsImpl : HHH000117: HQL: select up from UserPlan up, time: 48ms, rows: 1 2017-03-16 11:41:02.885 INFO 7884 --- [main] i.StatisticalLoggingSessionEventListener : Session Metrics { 939077 nanoseconds spent acquiring 1 JDBC connections; 0 nanoseconds spent releasing 0 JDBC connections; 2848386 nanoseconds spent preparing 1 JDBC statements; 12205063 nanoseconds spent executing 1 JDBC statements; 0 nanoseconds spent executing 0 JDBC batches; 0 nanoseconds spent performing 0 L2C puts; 0 nanoseconds spent performing 0 L2C hits; 0 nanoseconds spent performing 0 L2C misses; 0 nanoseconds spent executing 0 flushes (flushing a total of 0 entities and 0 collections); 18693 nanoseconds spent executing 1 partial-flushes (flushing a total of 0 entities and 0 collections) }Defina la propiedad hibernate.generate_statistics=true en el archivo hibernate.properties .