C # Идеи регистрации исключений - PullRequest
0 голосов
/ 26 февраля 2011

Я приближаюсь к завершению проекта C # / ASP.NET, который я разрабатываю, и мне придется поддерживать этот проект среди других проектов C # в обозримом будущем. Мне действительно нужен хороший, простой и глобальный способ регистрировать все детали любого сгенерированного исключения, и либо отправлять мне / log по электронной почте в базу данных / etc, но также отображать «простую» версию для пользователя.

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

Ответы [ 4 ]

3 голосов
/ 26 февраля 2011

log4net от apache и блок регистрации из лучших практик и шаблонов от Microsoft.

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

2 голосов
/ 26 февраля 2011

Используйте Эльму. Вы можете получить это от NUGET. Log4net также является хорошим вариантом.

Просто добавьте метод Application_Error в global.asax и обработайте свои ошибки здесь.

0 голосов
/ 27 февраля 2011

Рассмотрим Отчеты об ошибках Windows . Чтобы использовать WER, просто позвольте неожиданным исключениям избежать вашего процесса. ОС сделает снимок и (с разрешения пользователя) загрузит его на серверы Microsoft, где он будет автоматически проанализирован и (эвристически) помещен в «корзины» (все отчеты в одной «корзине» имеют хорошие шансы быть вызванными тот же баг).

Это позволяет вам не только видеть исключения, но и собирать моментальные снимки вашего процесса в момент возникновения исключения. VS2010 способен открывать эти снимки (мини-дампы). WER также включает в себя инструменты для определения, какие ошибки более важны (то есть влияют на большее количество пользователей).

Вам нужен сертификат подписи кода Authenticode для использования WER (цены колебались от 100 до 400 долларов в год в течение последних нескольких лет).

0 голосов
/ 26 февраля 2011

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

альтернативно это может помочь вам, если я лаю не на том дереве (как это происходит)

http://csharp -source.net / open-источник / логирование

...