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