到了春天,我是新手,所以这可能只是我在看,但我已经尝试了几个小时无济于事。我有spring和hibernate集成和工作但是,我想将查询记录到一个文件,以便我可以检查它们。我正在使用log4j进行日志记录,但问题是我不能让hibernate写入文件,并希望得到一些澄清。
这是applicationContext
中的sessionFactory bean<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>
非常感谢任何帮助?
编辑:
我已经尝试了link中提供的记录器,但这并没有导致查询被写入文件。
答案 0 :(得分:0)
我错过了表JPA注释,导致查询永远不会实际执行。因此,它没有记录它。添加了@Table(名称=&#34; My_Table&#34;) 它起作用了。