2

最近まで、クエリごとに新しいデータベース接続を作成していました。各クエリは connection.prepareStatement(query) を使用してセットアップされ、これらのクエリを prepareStatement.toString() を使用してロガー (java.util.logging) に記録することができました。これは、postgresql JDBC ドライバーを使用していました。

現在、c3p0 を使用して接続プールを管理するように切り替えましたが、残念ながら、preparedStatement.toString() は準備されたクエリ ステートメントを返さなくなりました。

c3p0 のログは標準のログ機能に送信できると読みましたが、残念ながらこれらのメッセージの送信先を見つけることができませんでしたこれらのメッセージはどこにありますか? NetBeans の Glassfish 3 のコンソールには、デバッグが有効になっていると表示されます。

情報: c3p0-0.9.1.2 を初期化しています [2007 年 5 月 21 日 15:04:56 に構築されました。デバッグ?真実; トレース: 10]
4

2 に答える 2

3

c3p0 のロギングが本当に探しているものであるかどうかはわかりません。

log4jdbcを使用することをお勧めします。これは、JDBC クエリを (パラメーターを使用して) ログに記録し、接続プールを使用している場合でも、JDBC/Hibernate/... ステートメントを指すスタック トレースを提供します (オプションを使用します)。-Dlog4jdbc.debug.stack.prefix=com.mycompany.myapp)。また、タイミング情報などを表示することもできます。

于 2011-08-07T10:18:16.697 に答える
2

ログに (debug?true) と表示されているようにログがオンになっているようですが、投稿にあったリ​​ンクのボックスを読むと、適切なファイルを見つけるためにチェックする必要があるセットアップ オプションが見つかります。

いわゆる最後の手段のオプションにログを記録することになった場合、ログに記録する必要があり、これSystem.Errが問題を引き起こす可能性があります。

したがって、前述のボックスで他のオプションを試し続けるか、リンクした投稿の回答セクションの修正を使用してください:)

于 2011-08-06T22:23:49.697 に答える