Vis dvalemodus / JPA SQL-uttalelser fra Spring Boot

1. Oversikt

Våren JDBC og JPA gir abstraksjoner over innfødte JDBC APIer, slik at utviklere kan gjøre opp med innfødte SQL-spørsmål. Imidlertid trenger vi ofte å se de automatisk genererte SQL-spørringene og rekkefølgen de ble utført i for feilsøkingsformål.

I denne raske opplæringen skal vi se på forskjellige måter å logge på disse SQL-spørsmålene i Spring Boot.

2. Logging av JPA-spørsmål

2.1. Til standard utgang

Den enkleste måten er å dumpe spørsmålene til standard ut, er å legge til følgende i application.properties:

spring.jpa.show-sql = true

For å forskjønne eller ganske skrive ut SQL, kan vi legge til:

spring.jpa.properties.hibernate.format_sql = true

Selv om dette er ekstremt enkelt, det anbefales ikke ettersom den direkte laster ut alt til standardutdata uten optimalisering av et loggingsrammeverk.

Videre det logger ikke parametrene for utarbeidede uttalelser.

2.2. Via Loggers

La oss nå se hvordan vi kan logge SQL-setningene ved å konfigurere loggere i egenskapsfilen:

logging.level.org.hibernate.SQL = DEBUG logging.level.org.hibernate.type.descriptor.sql.BasicBinder = TRACE

Den første linjen logger SQL-spørringene, og den andre setningen logger de forberedte setningsparametrene.

Den vakre utskriftsegenskapen fungerer også i denne konfigurasjonen.

Ved å sette disse egenskapene, logger vil bli sendt til den konfigurerte appenderen. Som standard bruker Spring Boot tilbakekobling med en standard ut appender.

3. Logging JdbcTemplate Spørringer

For å konfigurere utsagnslogging når du bruker JdbcTemplate, trenger vi følgende egenskaper:

logging.level.org.springframework.jdbc.core.JdbcTemplate = DEBUG logging.level.org.springframework.jdbc.core.StatementCreatorUtils = TRACE

I likhet med JPA-loggkonfigurasjonen, er den første linjen for logging av utsagn, og den andre er å logge parametere for forberedte utsagn.

4. Hvordan fungerer det?

Vår / dvalemodus, som genererer SQL-setninger og angir parametrene, inneholder allerede koden for å logge dem.

Nivået på logguttalelsene er imidlertid satt til DEBUG og SPOR henholdsvis, som er lavere enn standardnivået i Spring Boot - INFO.

Ved å legge til disse egenskapene setter vi bare disse loggerne til ønsket nivå.

5. Konklusjon

I denne korte artikkelen har vi sett på måtene å logge SQL-spørsmål i Spring Boot.

Hvis vi velger å konfigurere flere appenders, kan vi også skille SQL-setninger og andre logguttalelser i forskjellige loggfiler for å holde ting rene.


$config[zx-auto] not found$config[zx-overlay] not found