Используйте ELMAH для регистрации ошибок базы данных

Я использую ELMAH для обработки исключений в моем проекте ASP.Net MVC. Я хотел бы использовать его для регистрации ошибок, таких как тайм-аут соединения с базой данных, тайм-аут соединения запроса и других. Возможно ли это с ELMAH?


person cksanjose    schedule 05.03.2010    source источник


Ответы (2)


Если вы позволите исключению распространяться в веб-модуль Elmah, он автоматически регистрирует эти исключения.

Однако вы можете программно войти прямо в Elmah, есть несколько способов сделать это:

Вы можете использовать такой код в своем предложении catch в коде:

try{....}
catch(Exception ex) { Elmah.ErrorSignal.FromCurrentContext().Raise(ex); }

Другой способ сделать это:

Elmah.ErrorLog.GetDefault(HttpContext.Current).Log(new Elmah.Error(ex));

Однако я бы обернул этот код в более общий интерфейс стиля IErrorLogger, чтобы ваш код более низкого уровня не нуждался в жесткой зависимости от самого Elmah.

person saret    schedule 05.03.2010
comment
В чем разница, если таковая имеется, между двумя описанными выше методами? - person ProfK; 27.04.2011

Я не знаю, связано ли это с ELMAH (никогда не использовал его), но вы можете сделать все это с помощью MS Ent Libs, которые легко настраиваются.

http://msdn.microsoft.com/en-us/library/cc467894.aspx

http://entlib.codeplex.com/wikipage?title=EntLib5%20Beta1

person Adrian K    schedule 05.03.2010
comment
Он уже использует ELMAH ... предлагать ему полностью изменить свой подход - не лучший выбор, когда он действительно уже делает то, что он хочет. - person Nick Craver; 05.03.2010