2015-05-18 4 views
0

Я новичок, когда дело доходит до весны, поэтому это может быть что-то просто, я уже смотрю, но я пытался часами безрезультатно. У меня есть интегрированный и работающий с весной и спящим режимом, я хочу записать запросы в файл, чтобы я мог их изучить. Я использую log4j для ведения журнала, но проблема в том, что я не могу заставить спящий режим писать в файл и надеялся получить некоторое разъяснение.Spring Hibernate show_sql не работает

Вот SessionFactory боб в ApplicationContext

конфигурации
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.format_sql">true</prop> 
     </props> 
    </property> 
    <property name="packagesToScan" value="com.example"/> 
</bean> 

Log4j

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" 
debug="false"> 

<appender name="FILE" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="${catalina.home}/logs/my-log-file.log" /> 
    <param name="Append" value="true" /> 
    <param name="MaxFileSize" value="20MB" /> 
    <param name="MaxBackupIndex" value="2" /> 

    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{DATE} %c | %msg %n" /> 
    </layout> 
</appender> 

<appender name="hibernate-rolling" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="${catalina.home}/logs/hib-example-file.log" /> 
    <param name="Append" value="true" /> 
    <param name="ImmediateFlush" value="true" /> 
    <param name="MaxFileSize" value="20MB" /> 
    <param name="MaxBackupIndex" value="2" /> 

    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{DATE} %c | %msg %n"/> 
    </layout> 
</appender> 


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


<root> 
    <priority value="INFO"></priority> 
    <appender-ref ref="FILE" /> 
</root> 
</log4j:configuration> 

Любая помощь очень ценится?

EDIT:

Я попытался лесорубов, которые были предоставлены в этом link но не вызывают запросы, которые будут записаны в файл.

+0

Измените свой уровень на ВСЕ вместо отладки. –

+0

Я также попытался добавить все эти регистраторы, а также изменил уровень и все равно никаких изменений. Если я изменил регистратор на org.hibernate и уровень для его отладки, он будет записывать в файл журнала, но это 2000+ строк, а не один из них - это запрос, который используется для извлечения нужного мне объекта. – Chris

+0

org.hibernate.SQL работает для меня, чтобы показать все запросы, когда у меня установлен уровень ALL. Глупый вопрос, но смотрите ли вы на нужный файл для своего вывода (hib-example-file.log) и перезапустили ли вы приложение после изменения конфигурации? –

ответ

0

Мне не хватало аннотации таблицы JPA, в результате чего запрос никогда не выполнялся. Поэтому он не регистрировал его. Добавлено @Table (name = "My_Table") , и это сработало.

Смежные вопросы