Я использую Elmah с ASP.NET и задаюсь вопросом, как я добавил бы пользовательские данные, такие как переменная сеанса, на электронное письмо необработанного исключения.
Я попробовал несколько обработчиков в файле Global.asax, но, может казаться, не нахожу правильный.
Для этого, я думаю, вам нужно изменить исходный код Elmah и перекомпилировать. Это не должно быть слишком сложно. Если вы посмотрите в конструктор класса Elmah.Error
, передается HttpContext
, из которого вы сможете получить необходимую информацию, например Сессия, переменные формы и т. Д. Вы можете добавить настраиваемые поля в класс Elmah.Error
для этих данных
Я думаю, что Elmah.В классе ErrorMailHtmlFormatter
письмо создается с использованием HtmlTextWriter
, и здесь вы можете вставить код в метод RenderSummary ()
, чтобы включить настраиваемые поля, которые вы добавили в Elmah.Error
.
Я знаю, что начинать работу с исходным кодом может быть непросто, но лично я считаю, что это самый чистый способ, так как в настоящее время нет средств для шаблонов отчетов / сообщений электронной почты, и лучше, чтобы что-то изменилось, чтобы изменить вывод после того, как он был сгенерирован.
Ответ Эндрю очень помог, спасибо. В итоге я сделал следующее: