Параметры блокировки приложения для ведения журнала в корпоративной библиотеке - PullRequest
1 голос
/ 09 февраля 2010

Может ли блок приложения каротажа обрабатывать эти ситуации или их комбинации?

  • Если регистрация не удалась, не выбрасывайте исключение
    • только для определенных исключений / типов исключений
  • Если ведение журнала не удается, откат к другому типу (т. Е. Сбой ведения журнала базы данных, возврат к электронной почте или net send)

Пример моего фактического варианта использования:

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

Ответы [ 4 ]

3 голосов
/ 11 апреля 2011

Маслоу, пожалуйста, прочитайте мои комментарии к другим ответам. Кроме того, я настоятельно рекомендую вам прочитать эту главу Руководства разработчика - Легко, как выпадать из журнала .

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

3 голосов
/ 09 февраля 2010

Мой опыт работы с ELLAB состоял в том, что когда он не работает, почти невозможно понять, почему. Ведение журнала - это такая (обычно) тривиальная часть системы, основанная на таком тяжелом компоненте, как ELLAB, с которым иногда трудно работать, но иногда это бессмысленно.

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

Я бы предложил использовать L4N перед ELLAB, особенно если вы не используете другие блоки EL. Если вы сильно полагаетесь на Enterprise Library, ELLAB может быть вашим лучшим выбором; удачи, если ничего не произойдет, однако. Сайты обязательно должны использовать ELMAH. И если вы пишете приложение меньшего размера, подумайте о том, чтобы развернуть свой собственный код журнала.

2 голосов
/ 11 апреля 2011

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

LoggingInstrumentationProvider instrumentation = Logger.Writer.GetInstrumentationEventProvider() as LoggingInstrumentationProvider;

instrumentation.failureLoggingError += (s, z) => { throw z.Exception; };

....

....

//Logging code

 Logger.Write(new LogEntry() { Message = "bla bla", Severity = TraceEventType.Critical});
1 голос
/ 09 февраля 2010

Я использую ELMAH для веб-регистрации и EL Logging Block для всего остального. Я обнаружил, что EL Logging Block достаточно гибок, чтобы выполнять то, что вы просили.

Я бы обернул логику регистрации в некоторый класс регистрации и обработал исключения, как вы считаете нужным.

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