hibernate
SQL-Protokoll aktivieren / deaktivieren
Suche…
Bemerkungen
Das Protokollieren dieser Abfragen ist langsam , sogar langsamer als normalerweise der Ruhezustand. Es beansprucht außerdem viel Speicherplatz. Verwenden Sie die Protokollierung nicht in Szenarien, in denen Leistung erforderlich ist. Verwenden Sie dies nur zum Testen der Abfragen, die Hibernate tatsächlich generiert.
Verwenden einer Protokollierungskonfigurationsdatei
Stellen Sie in der Protokollierungskonfigurationsdatei Ihrer Wahl die Protokollierung der folgenden Pakete auf die angezeigten Stufen ein:
# log the sql statement
org.hibernate.SQL=DEBUG
# log the parameters
org.hibernate.type=TRACE
Es werden wahrscheinlich einige für die Protokollierung spezifische Präfixe benötigt.
Log4j config:
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
Spring Boot- application.properties
:
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"/>
Verwenden der Eigenschaften für den Ruhezustand
Dadurch wird das generierte SQL angezeigt, jedoch nicht die in den Abfragen enthaltenen Werte.
<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>
Aktivieren / Deaktivieren des SQL-Protokolls im Debugging
Einige Anwendungen, die Hibernate verwenden, erzeugen beim Starten der Anwendung eine große Menge an SQL. Manchmal ist es besser, das SQL-Protokoll an bestimmten Stellen beim Debuggen zu aktivieren / deaktivieren.
Um dies zu aktivieren, führen Sie einfach diesen Code in Ihrer IDE aus, wenn Sie die Anwendung debuggen:
org.apache.log4j.Logger.getLogger("org.hibernate.SQL")
.setLevel(org.apache.log4j.Level.DEBUG)
Etwas deaktivieren:
org.apache.log4j.Logger.getLogger("org.hibernate.SQL")
.setLevel(org.apache.log4j.Level.OFF)