我们正在使用 Entity Framework 4.0。当我们在生产中遇到问题时,我们希望能够临时启用所有 SQL 语句的日志记录。我们在生产 SQL Server 上没有足够的权限来运行 SQL Profiler。

是否有一个很好的日志记录选项(a)可以通过配置文件设置打开和关闭,并且(b)在关闭时不会增加大量开销?

我读过关于 Tracing and Caching Provider Wrappers for Entity Framework 的信息。这听起来不错……但它是示例代码,不受官方支持。所以我不确定它是否适合生产。我也不知道即使关闭日志记录,包装器是否会增加太多开销。有没有人对这些包装有过很好的经验?

谢谢你的帮助,
理查德

最佳答案

代码示例是 released in a NuGet package 。它经过轻微修改以配合内置的 .NET 跟踪系统(使用 TraceSource 而不仅仅是文件/控制台日志记录)。

我已经在几个不同的项目中使用过它,我发现它很有帮助。它可以像任何其他 TraceSource 一样从 app.config/web.config 启用/禁用。

我没有任何性能问题,但我只在单用户场景中使用它。

关于.net - 如何在生产中有效地支持 Entity Framework SQL 日志记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5863740/

10-12 05:37