0

まず、私の質問を読んでくれてありがとう。

私の環境から始めましょう: Primefaces 3.5 Hibernate 4.3.2 Glassfish 3.1.2

私の問題はこれです: log4j (およびそれらのクエリにバインドされたパラメーター) を使用して hibernate が行う SQL クエリをログに記録したい。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>

休止状態からのトレース、情報、およびその他の情報はどこにも出力されません。

ご協力ありがとうございました、

アンドレイ

4

1 に答える 1