ASP.NET で Elmah を使用していますが、未処理の例外メールにセッション変数などのカスタム データを追加する方法を考えています。
Global.asax ファイルでいくつかのハンドラーを試しましたが、適切なハンドラーが見つからないようです。
そのためには、Elmah のソースを変更して再コンパイルする必要があると思います。達成するのはそれほど難しくないはずです。Elmah.Errorクラスのコンストラクターを見ると、HttpContextが渡され、そこから必要な情報 (セッション、フォーム変数など) を取得できるはずです。Elmah.Errorこのデータのクラスにカスタム フィールドを追加できます。
Elmah.ErrorMailHtmlFormatterクラスは、 を使用して電子メールが作成される場所だと思います。HtmlTextWriterここで、メソッドにコードを挿入して、RenderSummary()に追加したカスタム フィールドを含めることができますElmah.Error。
ソースで作業を開始するのは面倒かもしれませんが、個人的には、レポート/電子メール テンプレートの機能がないため、個人的には最もクリーンな方法だと思います。
アンドリューの答えはとても役に立ちました、ありがとう。私は最終的に次のことをしました: