2011-12-28 4 views
1

この質問はまだIntercept SQL statements containing parameter values generated by NHibernateと同じですが、これまでの回答はありません。NHibernateインターセプトSQLステートメントとパラメータ

Public Class SqlStatementInterceptor 
    Inherits EmptyInterceptor 
    Implements IInterceptor 

    Public Overrides Function OnPrepareStatement(sql As SqlString) As SqlString 
     Debug.WriteLine(String.Format("{0} - {1}", DateTime.Now, sql.ToString())) 
     Return sql 
    End Function 
End Class 

私はSQL文をキャプチャできますが、パラメータを取得できないようです。誰もそれを達成しようとしましたか?

+0

あなたはロガーを使用できませんか? –

+0

@Felice Pollano私はできましたが、理想的ではありませんでした。私はSQLiteを使って単体テストを実装しているので(SQL Serverを使用している実動コードで)、VS出力ウィンドウにその文を表示する方が速いかもしれません。 – hardywang

+0

することができます、返信を見てください。何が起こるか見たい場合は、特別なアペンダーを作成する必要はありません –

答えて

4

あなたはlog4net appenderを書く必要があります。これは、NHProfが情報を取得する方法です。また、その技術を使用するNHibernate 3.0 SQL Loggerと呼ばれるコードプレックスに関するプロジェクトもあります。

1

log4netにはTraceAppender、またformat_sql=trueプロパティは可読性に役立ちます。使用するロガーはNHibernate.SQLです。

関連する問題