#elmah
#elmah
Вопрос:
Я использую Elmah в приложении WebForms и хотел бы иметь возможность изменять исключение до того, как Elmah его зарегистрирует. В моем сценарии некоторые из моих компонентов зависимостей генерируют исключения, которые имеют много пользовательских InnerExceptions с деталями, которые Elmah игнорирует. Итак, я хотел бы получить возможность повторить InnerExceptions и добавить текстовые сведения к основному исключению непосредственно перед тем, как Elmah его зарегистрирует.
Я могу видеть, как я бы полностью фильтровал исключения, но не похоже, что я мог бы изменить исключение и при этом разрешить его регистрацию. Есть идеи?
Ответ №1:
Не могли бы вы обработать свои исключения вместо того, чтобы оставлять их необработанными, чтобы ELMAH получал их автоматически, и создать пользовательское исключение с некоторым свойством, которое ELMAH считывает переопределенным, чтобы отобразить то, что вы хотите из ваших пользовательских свойств исключения? например, сообщение
ErrorSignal.FromCurrentContext().Raise(...)
Ответ №2:
Мы решили эту проблему, разветвляя Elmah локально и добавляя код для повторения исключений в соответствии с предложениями в этом выпуске Elmah:
http://code.google.com/p/elmah/issues/detail?id=162amp;can=1amp;q=data
Создание нашей собственной версии также позволило нам добавить пару других функций, которые текущая версия Elmah не предоставляет «из коробки».
Кстати, следующая версия Elmah находится в разработке — похоже, по крайней мере в некоторых кодовых базах будут внесены существенные изменения — поэтому мне нужно будет вернуться к этой проблеме и другим нашим дополнительным требованиям к ведению журнала, как только она выйдет.