Как эффективно поддерживать ведение журнала Entity Framework SQL на производстве? - PullRequest
4 голосов
/ 03 мая 2011


Мы используем Entity Framework 4.0. Когда мы сталкиваемся с проблемой в работе, мы хотели бы иметь возможность временно включить ведение журнала всех операторов SQL. У нас недостаточно прав на производственном SQL Server для запуска SQL Profiler.

Есть ли хороший вариант ведения журнала, который (a) можно включать и выключать с помощью настроек файла конфигурации, и (b) не добавляет значительных накладных расходов, когда он выключен?

Я читал о Оболочках провайдеров трассировки и кэширования для Entity Framework . Это звучит хорошо ... но это пример кода и официально не поддерживается. Поэтому я не уверен, будет ли это подходящим для производства. Я также не знаю, добавит ли оболочка слишком много служебной информации, даже если ведение журнала отключено. У кого-нибудь был хороший опыт использования этих упаковщиков?


Спасибо за вашу помощь,
Ричард

1 Ответ

3 голосов
/ 05 мая 2011

Пример кода выпущен в пакете NuGet .Он был немного изменен, чтобы связать его со встроенной системой трассировки .NET (используя TraceSource вместо простого ведения журнала файлов / консолей).

Я использовал его в нескольких разных проектах, и янашел это полезным.Его можно включить / отключить из app.config / web.config, как и любой другой TraceSource.

У меня не было проблем с производительностью, но я использую его только в однопользовательских сценариях.

...