使用log4j进行Hibernate日志记录

时间:2009-09-11 00:38:00

标签: hibernate logging log4j

我有以下代码,我仍然无法让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>

有人可以解释原因吗?我觉得元素和它的元素必须做些什么,但不知道这个元素的作用是什么?有人可以发布链接或其他我可以阅读的内容。

2 个答案:

答案 0 :(得分:3)

org.hibernate.SQL只在调试级别记录SQL - 你需要这样的东西:

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

答案 1 :(得分:1)

按如下方式配置log4j:

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

之后你必须将“hibernate.show_sql”hibernate属性配置为true