Java 记录Hibernate查询-在log4j.properties和persistence.xml中都设置?

Java 记录Hibernate查询-在log4j.properties和persistence.xml中都设置?,java,hibernate,jpa,logging,persistence,Java,Hibernate,Jpa,Logging,Persistence,在JBoss7日志中难以看到Hibernate生成的SQL查询时,我正在寻找以下问题的最终答案: 问:这两个配置位置中的条目应该同时存在,还是有一个会覆盖另一个 1) 在log4j.properties中 log4j.logger.org.hibernate.SQL=ALL #or DEBUG 2) 在persistence.xml中 <persistence-unit...> <properties> <property name="hiber

在JBoss7日志中难以看到Hibernate生成的SQL查询时,我正在寻找以下问题的最终答案:

问:这两个配置位置中的条目应该同时存在,还是有一个会覆盖另一个

1) 在log4j.properties中

log4j.logger.org.hibernate.SQL=ALL #or DEBUG
2) 在persistence.xml中

<persistence-unit...>
   <properties>
      <property name="hibernate.show_sql" value="true"/>
      ...

...

这对我来说是一个至关重要的问题,因为我只能编辑1)。

记录的要求如下(ofc您必须指定一个文件附加器):

1) 在log4j2.xml上

//if you put this to trace, you'll log the variables putted into the queries
<logger name="org.hibernate.type" level='trace' additivity="false" >
    <appender-ref ref='FileLog'></appender-ref>
</logger>
//with debug, you will log the query itself
<logger name='org.hibernate.SQL' level='debug' additivity='false'>
  <appender-ref ref='FileLog'></appender-ref>
</logger>
<property name="hibernate.show_sql">true</property>
//如果您将其放入跟踪,您将记录放入查询中的变量
2) 在log4j2.xml上

//if you put this to trace, you'll log the variables putted into the queries
<logger name="org.hibernate.type" level='trace' additivity="false" >
    <appender-ref ref='FileLog'></appender-ref>
</logger>
//with debug, you will log the query itself
<logger name='org.hibernate.SQL' level='debug' additivity='false'>
  <appender-ref ref='FileLog'></appender-ref>
</logger>
<property name="hibernate.show_sql">true</property>
//使用debug,您将记录查询本身
3) 在hibernate.cfg.xml上

//if you put this to trace, you'll log the variables putted into the queries
<logger name="org.hibernate.type" level='trace' additivity="false" >
    <appender-ref ref='FileLog'></appender-ref>
</logger>
//with debug, you will log the query itself
<logger name='org.hibernate.SQL' level='debug' additivity='false'>
  <appender-ref ref='FileLog'></appender-ref>
</logger>
<property name="hibernate.show_sql">true</property>
true
编辑:这是appender的一个示例

<appenders>
   <File name="FileLog" fileName="c:/path/your.log"></File>
</appenders>

好的,因此我从中了解到它们是协同工作的(而不是相互覆盖)。也就是说:我必须同时设置这两个参数(我无法做到这一点,但很高兴知道它是如何工作的)。