2011-05-03 58 views
4


我們使用的是實體框架4.0。當我們遇到生產中的問題時,我們希望能夠暫時啓用所有SQL語句的日誌記錄。我們沒有足夠的權限在生產SQL Server上運行SQL Profiler。如何有效地支持生產中的實體框架SQL日誌記錄?

是否有一個很好的日誌記錄選項(a)可以通過配置文件設置打開和關閉,並且(b)在關閉時不會增加大量開銷?我已閱讀Tracing and Caching Provider Wrappers for Entity Framework。這聽起來不錯...但它是示例代碼,並沒有官方支持。所以我不確定它是否適合生產。即使日誌記錄關閉,我也不知道包裝是否會增加太多開銷。有沒有人對這些包裝有很好的體驗?


感謝您的幫助,
理查德

+1

「我們沒有足夠的權限在生產SQL Server上運行SQL Profiler。」 - 你是否要求改變TRACE?它是一個遠射,大多數DBA不會給它,但它很容易關閉agaian .... – 2011-05-03 00:04:45

+0

可能重複[實體框架和查詢的SQL日誌記錄](http://stackoverflow.com/questions/174261/entity-framework-and-queries-sql-logging) – 2011-05-03 00:06:19

+0

跟蹤提供程序包裝程序不是官方支持的,但它是任何其他代碼。如果你想記錄日誌,你可以使用它,或者你會自己編寫相同的代碼,它仍然是「不受支持」。 – 2011-05-03 07:04:29

回答

3

的代碼示例已經released in a NuGet package。它已被稍微修改以配合內置的.NET跟蹤系統(使用TraceSource而不僅僅是文件/控制檯日誌記錄)。

我已經在幾個不同的項目上使用過它,我發現它很有幫助。它可以從app.config/web.config啓用/禁用,就像任何其他TraceSource

我沒有任何性能問題,但我只在單用戶場景中使用它。

+0

謝謝!這很好。也許我們仍然應該嘗試一下...... – 2011-05-04 23:59:45