0

Glassfish 4 と Hibernate 4.3 を使用しています。

Hibernate からすべてのクエリをログに記録するにはどうすればよいですか?

私の最初の試みには、SLF4J 1.7.7 と Logback 1.1.2 が含まれていました。SLF4J と Logback を使用していくつかのチュートリアルを試しましたが、結果はありませんでした。 あるチュートリアルでは、いくつかのファイルを手動で変更し、glassfish にいくつかのオプションを追加するように言われましたが、私はこの方法が嫌いです。

2 回目の試行では、P6SPY 2.0.2 を使用しました。このライブラリを機能させるには、P6SPY ドライバーを使用するように接続を変更し、実際のドライバーを使用するように spy.properties を構成する必要があります。Glassfish で接続プールを構成したので、P6SPY インストール チュートリアルを使用してそこで構成しようとしましたが、新しい DataSource を機能させることができませんでした。P6SPYのインストールチュートリアルでは、java.sqlDriverとjavax.sql.ConnectionPoolDataSourceを使って設定する方法がありますが、私はjavax.sql.DataSourceを使っています。

では、これが Glassfish で SLF4J を使用する唯一の方法ですか? チュートリアルまたはその構成方法を知っていますか?

SLF4J が機能しない場合、Glassfish 接続プールを使用してクエリをログに記録するように P6SPY を構成するにはどうすればよいですか?

より良いオプションはありますか?

前もって感謝します。

4

1 に答える 1

2

Glassfish の DataSource で P6Spy を使用するには、2 つ目の DataSource をセットアップする必要があります。これを行う方法は、ConnectionPoolDataSource をセットアップするための手順と非常によく似ています。唯一の違いは、res-type を javax.sql.DataSource に設定することです。

例:

<jdbc-connection-pool datasource-classname="com.p6spy.engine.spy.P6DataSource" res-type="javax.sql.DataSource" name="p6spyPool">
  <property name="realDataSource" value="jdbc/myrealds"></property>
  <property name="Password" value=""></property>
  <property name="User" value="sa"></property>
</jdbc-connection-pool>
<jdbc-resource pool-name="p6spyPool" jndi-name="jdbc/p6spy"></jdbc-resource>   

注: jdbc/myrealds を実際のデータ ソースの jndi 名に置き換える必要があります。

また、データ ソース プロキシを使用する場合、spy.properties で実際のドライバーを構成する必要はありません。

それでも設定に問題がある場合は、p6spy-users@googlegroups.com にメッセージを投稿してください。

于 2014-05-09T04:10:40.227 に答える