hibernate
SQL-logboek in- / uitschakelen
Zoeken…
Opmerkingen
Het registreren van deze query's is langzaam , zelfs langzamer dan Hibernate meestal is. Het neemt ook een enorme hoeveelheid logruimte in beslag. Gebruik logging niet in scenario's waar prestaties vereist zijn. Gebruik dit alleen bij het testen van de zoekopdrachten die Hibernate daadwerkelijk genereert.
Een logbestand voor logboekregistratie gebruiken
Stel in het logboekconfiguratiebestand van uw keuze het loggen van de volgende pakketten in op de getoonde niveaus:
# log the sql statement
org.hibernate.SQL=DEBUG
# log the parameters
org.hibernate.type=TRACE
Er zullen waarschijnlijk enkele logger-specifieke voorvoegsels nodig zijn.
Log4j-configuratie:
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
Spring Boot- application.properties
Eigenschappen:
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE
Logback logback.xml
:
<logger name="org.hibernate.SQL" level="DEBUG"/>
<logger name="org.hibernate.type" level="TRACE"/>
Hibernate-eigenschappen gebruiken
Hiermee wordt de gegenereerde SQL weergegeven, maar worden de waarden in de query's niet weergegeven.
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="hibernateProperties">
<props>
<!-- show the sql without the parameters -->
<prop key="hibernate.show_sql">true</prop>
<!-- format the sql nice -->
<prop key="hibernate.format_sql">true</prop>
<!-- show the hql as comment -->
<prop key="use_sql_comments">true</prop>
</props>
</property>
</bean>
Inschakelen / uitschakelen SQL log in debug
Sommige toepassingen die Hibernate gebruiken, genereren een enorme hoeveelheid SQL wanneer de toepassing wordt gestart. Soms is het beter om het SQL-logboek in specifieke punten in of uit te schakelen bij het debuggen.
Om deze in te schakelen, voert u deze code in uw IDE uit wanneer u de foutopsporing uitvoert:
org.apache.log4j.Logger.getLogger("org.hibernate.SQL")
.setLevel(org.apache.log4j.Level.DEBUG)
Uitschakelen:
org.apache.log4j.Logger.getLogger("org.hibernate.SQL")
.setLevel(org.apache.log4j.Level.OFF)