我正在开发一个WCF服务,我希望能够在我在本地运行时获取它所做的所有SQL查询的转储。
目前正在通过大量传播SqlCommand
来执行sprocs所以我想得到一个已运行的每个查询的列表。
我可以设置任何类型的工具或配置来记录此信息吗?通常我会使用类似SQL Profiler的东西,但我正在寻找从WCF角度运行的东西,因为我正在访问Azure数据库而SQL Profilier将不能与Azure一起工作(afaik)
答案 0 :(得分:1)
我不知道在使用SqlCommand / SqlConnection时记录所有sql代码的内置方法。
我在msdn上发现了这篇文章:Data Access Tracing in SQL Server 2008也许它指出了你正确的方向。
我能想象的一种更简单但不是非常通用的方法是编写一个继承自SqlCommand的类,并在添加一些日志记录时将所有方法委托给真正的SqlCommand。
答案 1 :(得分:1)
是的,按照Jan所说的我不知道只有一个带有SQlCommand / SQLConnections的通用记录器,你可以插入但是如果你从标准化的地方生成你的SQLCommands你可以使用
StatementCompletedEventHandler
从那里将命令文本传递给某种通用记录器,如log4net / Console.Write /或来自MS Ent Lib的东西
可能不是你希望的简单解决方案:-)理想情况下,你可以在配置文件中注册一些日志类,但我不知道这样的任何东西: - /