Szukaj…


Uwagi

Rejestrowanie tych zapytań jest powolne , a nawet wolniejsze niż zwykle Hibernacja. Zużywa również ogromną ilość miejsca na dzienniki. Nie używaj rejestrowania w scenariuszach, w których wymagana jest wydajność. Używaj tego tylko podczas testowania zapytań generowanych przez Hibernację.

Korzystanie z pliku konfiguracyjnego rejestrowania

W wybranym pliku konfiguracyjnym rejestrowania ustaw rejestrowanie następujących pakietów na pokazane poziomy:

# log the sql statement
org.hibernate.SQL=DEBUG
# log the parameters
org.hibernate.type=TRACE

Prawdopodobnie będą wymagane pewne prefiksy specyficzne dla rejestratora.

Konfiguracja Log4j:

log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE

application.properties 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"/>

Korzystanie z właściwości hibernacji

Spowoduje to wyświetlenie wygenerowanego kodu SQL, ale nie wyświetli wartości zawartych w zapytaniach.

<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>

Włącz / wyłącz logowanie SQL podczas debugowania

Niektóre aplikacje korzystające z Hibernacji generują ogromną ilość kodu SQL podczas uruchamiania aplikacji. Czasami lepiej jest włączyć / wyłączyć dziennik SQL w określonych punktach podczas debugowania.

Aby włączyć, po prostu uruchom ten kod w swoim IDE podczas debugowania aplikacji:

org.apache.log4j.Logger.getLogger("org.hibernate.SQL")
    .setLevel(org.apache.log4j.Level.DEBUG)

Wyłączyć:

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow