hibernate 4 に logback 経由でログを記録させるにはどうすればよいですか? 私はwildfly 8 finalに展開された戦争を持っており、ログバックでslf4jを使用しています。コンソール アペンダーとファイル アペンダーの両方が意図したとおりに機能し、ログのセットアップはアプリケーションで 100% 機能しています。
slf4j + logback を機能させるために私がしたことは次のとおりです。
WEB-INF の jboss-deployment-structure.xml でロギング サブシステムを除外:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
pom に含まれる slf4j と logback の依存関係:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.1</version>
</dependency>
org.slf4j.Logger を使用したアプリへのログイン
logback.xml に 3 つのロガーを追加しました。
<logger name="my.package" level="TRACE"/>
<logger name="org.hibernate.type" level="ALL" />
<logger name="org.hibernate" level="TRACE" />
ログに休止状態に関するものは何も表示されません。
休止状態から何かが表示されるのは、persistence.xml に追加するときだけです。
<properties>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
</properties>
しかし、ルートロガーが trace に設定されていても、ログバックアペンダーではなく、サーバーログとコンソールにログを記録します。. .
ログバック ViewStatusMessagesServlet は正常に見え、登録されている休止状態のロガーを示しています: 2014-02-23 19:02:37 INFO LoggerAction ロガー [org.hibernate.type] のレベルを ALL に設定
2014-02-23 19:02:37 INFO LoggerAction ロガー [org.hibernate] のレベルを TRACE に設定
また、persistence.xml に登録された hibernate.ejb.interceptor でログに記録された準備済みステートメントを取得することもできます。残念ながら、これはクエリパラメータを取得する方法も提供しません
誰でも私を助けることができますか?