0

Hibernate にパラメーター値を記録させようとしています。私は Netbeans を使用しており、結果の WAR ファイルを Ubuntu ボックスの Glassfish にデプロイしています。以前に使用したことがなく、比較方法を確認したいので、(log4j などではなく) Java util ロギングを使用しています。

persistence.xml で hibernate.show_sql プロパティを true に設定しました。はい、ログに SQL が出力されているのを確認できます (INFO レベル)。ただし、SQL で使用されている param 値を確認するには、Hibernate のログ レベルを TRACE (または少なくとも DEBUG) に変更する必要があると思いますが、アプリは INFO レベルに設定されているようです。

logging.properties がそれを行う場所であることは理解していますが、ドキュメントはすべて、システム全体である JRE での構成を指しているようです。

私の質問は...代わりに、logging.propertiesをアプリケーションのどこかに配置して、同じアプリケーションサーバー上の異なるアプリが異なるロギング構成を持つことができるようにすることはできますか?

そして、(私が読んだことから)Hibernateが共通ロギングを使用していることを考えると、共通ロギングではなくJULを使用しているため、この情報をまったく取得できますか?

ありがとう

4

1 に答える 1

2

プロパティ ファイルは、アプリケーションのクラスパスのルートに置くことができます。Web アプリケーションの場合、場所の 1 つは WEB-INF/classes です。

TRACE レベルを有効にすると、次のような TRACE ステートメントを表示できます。

insert into table (name, id) values (?, ?)
.........................

binding '1' to parameter: 2

ただし、これはおそらくあなたが望むものではありません。含まれているバインドされたパラメーターを sql 自体に表示する必要がある場合は、P6Spy ライブラリを使用できます。P6Spy のセットアップは非常に簡単です。設定方法はこちらでご覧いただけます。

設定すると、ログにSQLが表示されます

insert into grouptable (name, id) values ('Name', 1)
于 2012-09-18T12:26:18.883 に答える