.NET - Регистрация и мониторинг исключений - PullRequest
8 голосов
/ 22 июля 2010

Каков наилучший способ отслеживания регистрации исключений в производственной среде?У меня есть приложение, где в исключениях записываются в текстовый файл.Каждый раз, когда мне нужен доступ к этим файлам журналов, мне нужно было запросить команду backoffice, чтобы отправить мне копию.

Чтобы импровизировать этот процесс, я подумал о нескольких вариантах:

1) Отправитьжурналы ошибок на регулярной основе

2) Сохраните файл журнала в базе данных

3) Создайте какие-либо объекты прослушивателей для мониторинга журналов (это вообще возможно?)

Есть ли лучший вариант и как его реализовать?

TIA

Ответы [ 5 ]

5 голосов
/ 22 июля 2010

Вам следует попробовать Модули и обработчики регистрации ошибок (ELMAH) .

ELMAH - бесплатная библиотека регистрации ошибок с открытым исходным кодом.Он включает в себя такие функции, как:

  • Фильтрация ошибок
  • Просмотр ошибок на веб-странице (настраиваемые роли пользователей)
  • RSS-лента
  • Скачать в формате CSV
  • Программно вызвать исключение непосредственно для него
  • Уведомления по электронной почте

Информацию о том, как установить и использовать, проверьте на его странице.

Дополнительная литература

Для получения дополнительной информации по темам, обсуждаемым в этом руководстве, обратитесь к следующим ресурсам:

2 голосов
/ 23 июня 2012

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

Другой вариант - если ваши данные могут храниться в облаке - это службы мониторинга исключений, такие как Appfail и Airbrake .Это облачные сервисы мониторинга исключений.

Например, с помощью Appfail вы подключаете модуль отчетности (аналогичный модулю отчетности ELMAH), который будет сообщать об исключениях своей веб-службе.Затем вы можете войти, чтобы просмотреть аналитику отказов и зарегистрироваться, чтобы получать уведомления о важных сбоях.

** Отказ от ответственности: я работаю на Appfail: -)

2 голосов
/ 22 июля 2010

Я настоятельно рекомендую log4net. С ним можно вести практически любой тип регистрации, и, кроме того, на странице документации есть даже пример SMPTAppender, найденный здесь . Таким образом, вы можете отправлять исключения напрямую кому угодно, вы можете хранить их в БД, возможности действительно безграничны.

1 голос
/ 22 марта 2014

Вы можете рассмотреть Seq - это сервер, который вы можете установить в своей собственной среде (настройка MSI), а затем отправлять журналы с использованием NLog, log4net или Serilog .

Как только ваши приложения отправляют журналы в Seq, вы можете запрашивать их с помощью веб-интерфейса или настраивать обработчики, которые уведомят вас, возможно, по электронной почте, но на самом деле любым способом, который вы выберете: обработчики могут быть написаны на C # и подключены.

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

Serilog'sс открытым исходным кодом (Apache2 на GitHub) и поддерживает различные фоновые и выходные форматы.Seq является коммерческим, но предлагает очень полезную бесплатную версию.

1 голос
/ 22 июля 2010

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

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

...