Обработка исключений в ASP.NET / ведение журнала - PullRequest
6 голосов
/ 15 июля 2009

Существует ли простой способ регистрации всех исключений в приложении ASP.NET? Я уже регистрирую необработанные исключения через событие Application_OnError, но я хочу вести запись, даже когда исключение обрабатывается на уровне страницы.

Большое спасибо.

Ответы [ 7 ]

9 голосов
/ 15 июля 2009

Вы можете использовать Elmah для регистрации ваших исключений. Он действительно прост в использовании и дает хорошую информацию о проблеме.

5 голосов
/ 15 июля 2009

Предполагая, что вы только выбрасываете и перехватываете свои собственные типы исключений (производные от System.Exception ofc), вы можете сделать свой журнал базовых исключений любым необходимым в его конструкторе.

3 голосов
/ 18 июля 2011

Я согласен с Коллином, что вы должны регистрироваться везде, где ловите (и не выбрасывать).

Но если вам нужно, чтобы каждое исключение регистрировалось без особых изменений кода, обработайте событие AppDomain.FirstChanceException , и вы получите ВСЕ исключения (возможно, это даже слишком много: p, но это может помочь вам очистить код).

1 голос
/ 15 июля 2009

ASP.NET Health Monitoring делает это элегантным и довольно автоматическим способом (не нужно вручную перехватывать исключения):

Когда вы нажимаете первую ссылку, появляется пример того, как включить и настроить мониторинг работоспособности ASP.NET. Вам необходимо настроить его в файле web.config.

Для регистрации в БД вы можете создать соответствующую таблицу, используя инструмент регистрации ASP.NET SQL Server: Инструмент регистрации ASP.NET SQL Server (Aspnet_regsql.exe)

Мне действительно это нравится. Для ведения журнала вручную шаблоны и практики Блок приложения ведения журналов Enterprise Library может быть чем-то для вас, но это немного не по теме.

Matthias

1 голос
/ 15 июля 2009

Вызовите ваш компонент журналирования в блоках перехвата для обработанных исключений.

0 голосов
/ 17 июня 2011
0 голосов
/ 15 июля 2009

Я не думаю, что в любом случае есть автоматическая регистрация обработанных исключений. Если вы уже ведете журнал Application_OnError для необработанных исключений, я боюсь, что Колин прав, и вам придется вызывать свой компонент ведения журналов в блоках catch для обработанных исключений, для которых вы хотите вести журнал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...