NHibernate截取SQL语句和参数

NHibernate截取SQL语句和参数,nhibernate,interceptor,Nhibernate,Interceptor,这个问题几乎和你的一样,但到目前为止还没有答案 Public Class SqlStatementInterceptor Inherits EmptyInterceptor Implements IInterceptor Public Overrides Function OnPrepareStatement(sql As SqlString) As SqlString Debug.WriteLine(String.Format("{0} - {1}",

这个问题几乎和你的一样,但到目前为止还没有答案

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语句m,但似乎无法获取参数。有人试过实现它吗?

您需要编写log4net appender。这就是NHProf获取信息的方式。codeplex上还有一个名为的项目,它使用了这种技术。

您需要编写log4net appender。这就是NHProf获取信息的方式。codeplex上还有一个名为的项目,它使用了这种技术。

您可以将
log4net
TraceAppender
一起使用,还可以在配置中使用
format\u sql=true
属性来帮助提高可读性。要使用的记录器是
NHibernate.SQL

您可以将
log4net
TraceAppender
一起使用,还可以在配置中使用有助于可读性的
format\u SQL=true
属性。要使用的记录器是
NHibernate.SQL

@Felice Pollano我可以,但并不理想。因为我使用SQLite实现单元测试(在生产代码中我使用SQL Server),所以在VS输出窗口中显示语句可能会更快。如果您只想看到什么,无需创建特殊的附加器happens@Felice波拉诺:我可以,但并不理想。因为我使用SQLite实现单元测试(在生产代码中我使用SQL Server),所以在VS输出窗口中显示语句可能会更快。如果您只想看到发生了什么,就不需要创建特殊的appender