kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Costo
Costo
Вопрос

Как регистрировать ошибки (исключения) в приложениях ASP.NET?

Я ищу лучший способ регистрации ошибок в приложении ASP.NET. Я хочу иметь возможность получать электронные письма, когда в моем приложении возникают ошибки, с подробной информацией об исключении и текущем запросе.

В моей компании у нас был свой собственный ErrorMailer, отлавливающий все в Global.asax Application_Error. Это было "хорошо", но не очень гибко и не настраиваемо.

Недавно мы перешли на NLog. Он гораздо более настраиваемый, мы можем определять различные цели для ошибок, фильтровать их, буферизировать (пока не пробовали). Это очень хорошее улучшение.

Но недавно я обнаружил, что в .Net есть целое пространство имен для этой цели: System.Web.Management и его можно настроить в разделе healthMonitoring в web.config.

Приходилось ли вам работать с мониторингом здоровья в .Net? Каково ваше решение для протоколирования ошибок?

27 2008-08-15T04:05:10+00:00 8
Mark Amery
Mark Amery
Редактировал вопрос 5-го июня 2017 в 1:47
Программирование
error-handling
asp.net
nlog
health-monitoring
Решение / Ответ
Dale Ragan
Dale Ragan
15-го августа 2008 в 4:34
2008-08-15T04:34:49+00:00
Дополнительно
Источник
Редактировать
#8415637

Я использую elmah. У него есть несколько действительно хороших функций, и вот статья CodeProject о нем. Я думаю, что команда StackOverflow также использует elmah!

29
0
 Mun
Mun
15-го августа 2008 в 6:31
2008-08-15T06:31:07+00:00
Дополнительно
Источник
Редактировать
#8415639

Я'вэ использовал такой как log4net, настроен по электронной почте подробности фатальных ошибок. Это's также настроить, чтобы она записывала все в файл журнала, который имеет неоценимое значение при попытке отладки проблемы. Другое преимущество заключается в том, что если стандартный функционал не'т делать, что вы хотите, это'ы довольно легко написать пользовательский приемщика, который может обрабатывать информацию в области лесозаготовок по мере необходимости.

Сказав это, я'м через это в тандеме с пользовательского обработчика ошибок, который отправляет письма в формате HTML с немного больше информации, чем входит в стандартный, такой как log4net письма - страницы, сессии переменные, файлы cookies, HTTP-сервер переменные и т. д.

Они оба проводные в Application_OnError, где исключение регистрируется как неустранимое исключение в такой как log4net (после чего он будет выслан на указанный адрес электронной почты), а также обрабатываются с помощью пользовательского обработчика ошибок.

Впервые услышал о Elmah от кодирование ужасов записи блога, аварии ответственно, и хотя это выглядит многообещающим, я'м еще, чтобы реализовать любые проекты.

9
0
Aaron Powell
Aaron Powell
23-го января 2009 в 9:56
2009-01-23T09:56:20+00:00
Дополнительно
Источник
Редактировать
#8415641

Я использую log4net и где когда-либо я жду исключение я зарегистрировать ее на соответствующий уровень. Я, как правило, не повторно бросить исключение, потому что он не'т действительно позволяют как-хороший пользовательский опыт, тем меньше информации вы можете предоставить на текущее состояние.

Я'll имеет application_error для перехвата также настроен, чтобы поймать любое исключение, которое не ожидалось, и ошибка регистрируется в качестве смертельного приоритет путем, такой как log4net (ну, 404'ов, обнаруженных и зарегистрированных в качестве информации, как они'т, что высокой степени тяжести).

2
0
Brian Childress
Brian Childress
15-го августа 2008 в 6:11
2008-08-15T06:11:57+00:00
Дополнительно
Источник
Редактировать
#8415638

Я've был с помощью библиотеки Enterprise'ы объектов лесозаготовок. Это позволяет иметь различные типы лесозаготовки (плоский файл, по электронной почте, и/или базы данных). Это'ы довольно настраиваемый и имеет очень хороший интерфейс для обновления вашего веб.config для настройки ведения журнала. Обычно я называю мою регистрацию на ошибки в глобальном.эйсакс.

Здесь'ы ссылку на сайте MSDN

2
0
 matt-dot-net
matt-dot-net
9-го августа 2015 в 4:52
2015-08-09T16:52:46+00:00
Дополнительно
Источник
Редактировать
#8415642

Мы используем EnterpriseLibrary.Обработка исключений.Лесозаготовки. Мне нравится это немного лучше, чем такой как log4net, потому что мы не только полностью контролировать ведение журнала, но мы можем контролировать бросок решение/NoThrow в config как хорошо.

0
0
Brandon Wood
Brandon Wood
15-го августа 2008 в 4:33
2008-08-15T04:33:02+00:00
Дополнительно
Источник
Редактировать
#8415636

Моя команда использует log4net от Apache. Он довольно легкий и простой в настройке. Лучше всего то, что он полностью настраивается из файла web.config, поэтому, как только вы установите крючки в коде, вы можете полностью изменить способ ведения журнала, просто изменив файл web.config.

log4net поддерживает запись логов в самые разные места - базу данных, электронную почту, текстовый файл, журнал событий Windows и т.д. Моя команда настроила его на отправку подробной информации об ошибках в базу данных, а также на отправку электронной почты всей команде с достаточной информацией, чтобы мы могли определить, в какой части кода возникла ошибка. Тогда мы знаем, кто отвечает за этот кусок кода, и они могут обратиться к базе данных, чтобы получить более подробную информацию.

0
0
Анонимный пользователь
15-го сентября 2008 в 5:22
2008-09-15T17:22:49+00:00
Дополнительно
Источник
Редактировать
#8415640

Недавно я создал веб-сервис asp.net с NLog, который я использую для всех моих настольных приложений. Ведение журнала работ в порядке, когда я'м отладку в Visual Studio, но как только я переключаюсь на IIS лог-файл это'т создан; я'вэ еще не определил почему, но это то, что мне нужно искать решение заставляет меня хотите попробовать что-то другое для меня asp.net должен!

0
0
 brendan
brendan
15-го августа 2008 в 4:26
2008-08-15T04:26:53+00:00
Дополнительно
Источник
Редактировать
#8415634

Мы используем написанную нами собственную утилиту протоколирования. Она требует, чтобы вы сами реализовали ведение журнала везде, где это необходимо. Но она также позволяет вам фиксировать гораздо больше, чем просто исключение.

Например, наш код выглядит следующим образом:

Try
  Dim p as New Person()
  p.Name = "Joe"
  p.Age = 30
Catch ex as Exception
  Log.LogException(ex,"Err creating person and assigning name/age")
  Throw ex
End Try

Таким образом, наш регистратор будет записывать всю необходимую нам информацию в базу данных SQL. Мы настроили оповещения по электронной почте на уровне базы данных для поиска определенных ошибок или часто встречающихся ошибок. Это помогает нам определить, откуда именно берутся ошибки.

Это может быть не совсем то, что вы ищете. Другой подход, похожий на использование Global.asax, заключается в использовании техники внедрения кода, например AOP с PostSharp. Это позволяет вам внедрять пользовательский код в начале и конце каждого метода или при каждом исключении. Это интересный подход, но я считаю, что он может иметь большие накладные расходы на производительность.

Michael Myers
Michael Myers
Редактировал ответ 30-го мая 2017 в 8:15
0
0
Похожие сообщества 13
DotNetRuChat
DotNetRuChat
6 630 пользователей
Чат русскоязычного .NET сообщества http://dotnet.ru/ Правила: https://t.me/DotNetRuChat/704399 Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia, @DotNetRuJobs, @uwp_ru Флуд в @dotnettalks
Открыть telegram
Вакансии .NET
Вакансии .NET
3 530 пользователей
Правила: https://t.me/DotNetRuJobs/123 Канал с вакансиями - https://t.me/DotNetRuJobsFeed Вам могут быть интересны: @dotnetruchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia Флуд в @dotnettalks
Открыть telegram
pro.net
pro.net
1 820 пользователей
Обсуждение .NET и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). https://t.me/pro_net/34653 Флудилка: @dotnettalks
Открыть telegram
var chat = new Chat();
var chat = new Chat();
1 428 пользователей
Обсуждение вопросов по .NET Правила чата – https://blog.devdigest.today/chat-rules Чат для флуда – https://t.me/+zwxI91RGG6s2YzAy
Открыть telegram
.NET Talks - День сурка
.NET Talks - День сурка
1 324 пользователей
Свободный чат .NET разработчиков. Правила: https://t.me/dotnettalks/548269 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @DotNetRuJobs, @uwp_ru, @AvaloniaRu, @dotnettalksenglish
Открыть telegram
Чат конференции DotNext
Чат конференции DotNext
987 пользователей
Канал конференции: @dotnext_channel Ближайшая конференция — DotNext 2022 Autumn, даты будут анонсированы позднее Билеты https://tinyurl.com/DotNext2023Autumn Саппорт: @JUGConfSupport_bot
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Денис Васьков
Зарегистрирован 15 часов назад
2
Dima Patrushev
Зарегистрирован 2 дня назад
3
sirojidddin otaboyev
Зарегистрирован 1 неделю назад
4
Елена Гайдамамакинат
Зарегистрирован 1 неделю назад
5
Иван Степанюк
Зарегистрирован 1 неделю назад
ID
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией