5

質問のほとんどすべて。p6spy を hibernate に関連して発見したところです。これは実際の SQL クエリを表示するのに非常に便利ですが、その仕組みについてはかなり困惑しています。
それで、それはどのように機能しますか?

4

1 に答える 1

2

p6spy の基本的な考え方は次のようになります。

  1. Datasourceコード内で目的を達成するか目的を達成するかに応じて、実際のコードを参照する代わりに、p6spyJDBC driver固有のものを指定します。)。com.p6spy.engine.spy.P6SpyDrivercom.p6spy.engine.spy.P6DataSource
  2. その後、ファイル内の実際のものを構成しspy.propertiesます(それぞれrealdriverまたはrealdatasourceプロパティを使用)
  3. 構成に応じて、SQL ステートメントのロギングを実現できます (を使用com.p6spy.engine.logging.P6LogFactory)
  4. あなたの質問に答えるために、アイデアは、すべてのjdbc呼び出し(ステートメントの実行、トランザクション関連のもの)がp6spyによってラップ(プロキシ)され、構成に応じて、ファイルロガー(を使用appender=com.p6spy.engine.logging.appender.FileLogger)、stdoutロガーを介してログに記録できるということです( を使用appender=com.p6spy.engine.logging.appender.StdoutLogger) または log4j ロガー (: を使用appender=com.p6spy.engine.logging.appender.Log4jLogger)

詳細に興味がある場合は、お気軽にお問い合わせいただくか、https ://github.com/p6spy/p6spy でプロジェクト自体を確認してください。

于 2013-09-08T05:40:30.813 に答える