如何捕获通过Ado.Net发送的所有SQL

Geo*_*uer 19 c# ado.net logging entity-framework dapper

我有一个使用Entity Framework和Dapper的应用程序.我想提供一个自定义记录器来注销通过ado.net连接发出的任何sql.这样做的最佳方式是什么?

或者,如果不容易发生什么困难呢?

tne*_*tne 7

ADO.NET数据跟踪你的工作?它插入ETW,您可以从中粘贴当前的日志记录系统.虽然看起来不是很独立.


Mar*_*ell 5

Miniprofiler,这是由同一个团队写的,可工作在短小精悍和Entity Framework -虽然IIRC以后需要一点更多的工作。这提供了记录和分析ADO.NET命令的功能。我们在stackoverflow(以及整个堆栈交换网络)上使用24x7全天候工作,因此即使在规模上也能很好地工作。

  • 但是如何将其连接到自定义记录器?我花了一些时间浏览他们的源代码并复制该功能似乎很重要 (2认同)