ログバックログライブラリを使用するようにHibernateを設定しました。そして、 "org.hibernate.SQL"と "org.hibernate.type"ロガーからロギングデータをキャッチするアペンダを作成しました。デフォルトでは、これらはINFOレベルに設定されています。JMXを介して実行時にLogbackのHibernate SQLログレベルを変更する
次のステップとして、logbackのJMXインターフェイスを使用して、これらの2つのロガーのレベルをDEBUGレベルに変更しようとします。しかし、それは動作しませんし、ログファイルにはデータが含まれていません。設定ファイルでログレベルをDEBUGに設定してからサーバーを再起動した場合にのみ動作します。
Hibernateにロギングを開始させるために何か追加する必要がありますか?ここで
はアペンダ/ロガーの設定を行く:
<configuration debug="false" scan="true" scanPeriod="5 minutes">
<jmxConfigurator />
...
<property name="SQL_LOG_LEVEL" value="DEBUG" />
<appender name="SQL_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIRECTORY}/sql_${weblogic.Name}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${ROTATION_DIRECTORY}/sql_${weblogic.Name}.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>50MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<logger name="org.hibernate.SQL" level="${SQL_LOG_LEVEL}" additivity="false">
<appender-ref ref="SQL_LOG" />
</logger>
<logger name="org.hibernate.type" level="${SQL_LOG_LEVEL}" additivity="false">
<appender-ref ref="SQL_LOG" />
</logger>
...
</configuration>
はEDIT:私はいくつかのアプリケーション(EAR)同じコンテナに配備ファイルを持っています。すべてのアプリケーションが同じログ設定を使用しています。
あなたは正しいです、それはorg.hibernate.SQLがDEBUGレベルに満足しているようですが、org.hibernate.typeはTRACEレベルが必要です。私の問題は少し違う。 JMX上のランタイム中のロギングレベルの変更はロガーに影響しません... –