ASP.NET Logging - log4net или мониторинг работоспособности? - PullRequest
8 голосов
/ 16 марта 2009

Я смотрю свежий сайт asp.net в 3.5, который не имеет абсолютно никакой обработки ошибок или регистрации. Каковы хорошие варианты для регистрации и обработки ошибок? Я использовал Log4Net на платформе 1.1, но слышал, что в 3.5 есть потенциально лучшие варианты.

Ответы [ 6 ]

8 голосов
/ 16 марта 2009

Один из вариантов - ELMAH. Я задал вопрос об этом здесь: Обработка ошибок ASP.NET .

С тех пор я реализовал немного измененную версию, и журналирование плюс электронная почта отлично и легко интегрируются через файл web.config.

6 голосов
/ 12 октября 2010

Мы используем две опции для нашей регистрации: -

ELMAH для обработки непредвиденных исключений

NLog для ожидаемой, ручной (отладка, информация и ошибка) информации.

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

Теперь NLog дополняет , так как наши разработчики вручную вставляют отладочную информацию в код в определенных местах, поэтому, когда нам нужно получить информацию из системы, не являющейся locahost, это очень просто. Например, мы засоряем код log.Debug(..) в большинстве наших методов, чтобы увидеть, что представляют собой локальные переменные или возвращаемые значения и т. Д. Для получения более важной информации мы затем используем log.Info(..) .. но используем это гораздо реже. Наконец, для серьезных ошибок, которые мы уловили и обработали, мы используем log.Error(..) или log.Warn(..) .. обычно внутри некоторых try/catch областей. Таким образом, на наших тестовых или живых серверах мы затем включаем все состояния регистрации (например, Debug и выше), если нам нужно получить МНОГО данных, живых ... или просто важную информацию общего характера, такую ​​как Info состояний и больше. У нас всегда есть Warn, Error and Fatal состояний. Состояние отладки генерирует МНОГО данных, поэтому мы используем их только экономно.

Итак, для подведения итогов я предлагаю вам использовать ДВА подхода к вашему WebApp. Элма за превосходную неожиданную перехват ошибок и NLog за ожидаемую информацию и ошибки.

Наконец, NLog НАСТОЛЬКО проще в использовании / работе, чем Log4Net. Это в основном превосходит его, ИМО.

4 голосов
/ 16 марта 2009

Если вы привыкли к log4net, придерживайтесь того, что вы знаете. Это легко, быстро и хорошо работает. Я использовал это в течение многих лет в 1.1, 2.0, а теперь 3.5.

3 голосов
/ 25 июня 2009

ASP.NET Health Monitoring на самом деле делает довольно достойную работу прямо из коробки!

MSDN, Как отправлять электронную почту для уведомлений о мониторинге работоспособности

0 голосов
/ 12 октября 2010

Лично я не пробовал log4net, но видел спецификации и примеры для winforms, но моя организация закодировала наш собственный механизм ведения журнала, который сообщает и регистрирует ошибки, обнаруженные в global.asax, который сообщает все, что нам нужно знать о трассировке стека , сеанс (если существует), NVC формы, версия приложения, URL-адрес, с которого возникла ошибка со строкой запроса, и заголовки HTTP. Хотя я заметил, что не все ошибки регистрируются там; такие как истечение срока проверки подлинности с помощью форм, перезапуск / выключение пула приложений или что-либо, сообщенное IIS, которое не было выброшено исполняемым приложением.

0 голосов
/ 16 марта 2009

Корпоративная библиотека , возможно, имеет кривую обучения, но это хороший проект.

В Asp.Net следуйте статье Дэвида Хейдена Блок приложения для ведения журнала Enterprise Library 2.0

...