Вопрос

У меня есть следующий код, и я все еще не могу заставить Hibernate писать SQL-запросы в файл журнала. Он отлично записывает их в консоль Eclipse.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="file" 
 class="org.apache.log4j.RollingFileAppender">
 <param name="maxFileSize" value="500KB"/>
 <param name="maxBackupIndex" value="5"/>
 <param name="File" value="hibernate.log"/>
 <layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern"
    value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
 </layout>
</appender>

<logger name="org.hibernate.SQL">
    <level value="info"/>
    <appender-ref ref="file"/>
</logger>


<root>
<priority value="info"></priority>
<!--  -->
</root>


</log4j:configuration>

Кто-нибудь может объяснить, почему? Я чувствую этот элемент, и этот элемент должен что-то с этим делать, но понятия не имею, что делает этот элемент? Может кто-то опубликовать ссылку или что-то, где я могу прочитать это.

Это было полезно?

Решение

org.hibernate.SQL регистрирует SQL только на уровне отладки - вам нужно что-то вроде этого:

<logger name="org.hibernate.SQL">
  <level value="debug" />
  <appender-ref ref="file" />
</logger>

Другие советы

Настройте log4j следующим образом:

<logger name="org.hibernate">
    <level value="debug"/>
    <appender-ref ref="file"/>
</logger>

после этого вам нужно настроить " hibernate.show_sql " свойство hibernate для true

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top