首先感谢您花时间阅读我的问题。
我将从我的环境开始: Primefaces 3.5 Hibernate 4.3.2 Glassfish 3.1.2
我的问题是:我想记录使用 log4j 的 sql 查询 hibernate (以及绑定到这些查询的参数)。在我决定实施Open Session in View模式之前,日志记录一直有效。现在日志只包含来自此过滤器的信息(如“启动数据库事务”等)。
我的 log4j.xml 看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="production"
class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="ActiveFileName" value="app.log"/>
<param name="FileNamePattern" value="app.log.%d{yyyy-MM-dd}.gz" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="debugfile"
class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="ActiveFileName" value="debug.log"/>
<param name="FileNamePattern" value="debug.log.%d{yyyy-MM-dd}.gz" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="hibernatefile"
class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="ActiveFileName" value="hibernate.log"/>
<param name="FileNamePattern" value="hibernate.log.%d{yyyy-MM-dd}.gz" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:%L - %m%n" />
</layout>
</appender>
<logger name="org.hibernate.type" additivity="false">
<level value="TRACE" />
<appender-ref ref="hibernatefile"/>
</logger>
<logger name="org.hibernate.SQL" >
<level value="DEBUG" />
<appender-ref ref="hibernatefile"/>
</logger>
<logger name="org.hibernate">
<level value="info"/>
<appender-ref ref="hibernatefile" />
</logger>
<root>
<appender-ref ref="debugfile" />
<appender-ref ref="production" />
</root>
</log4j:configuration>
来自 hibernate 的 trace、info 和其他信息不会打印在任何地方。
谢谢您的帮助,
安德烈