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)


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow