12

ELMAHでプログラム的にログに記録されたエラーにメッセージを追加する方法に少し混乱しています。

例えば:

public ActionResult DoSomething(int id)
{
    try { ... }

    catch (Exception e)
    {
        // I want to include the 'id' param value here, and maybe some
        // other stuff, but how?
        ErrorSignal.FromCurrentContext().Raise(e);
    }
}

Elmahができることは、生の例外をログに記録することだけのようですが、どうすれば自分のデバッグ情報もログに記録できますか?

4

2 に答える 2

18

元の例外を内部例外として設定する新しい例外をスローすると、ELMAH は両方のメッセージをログに記録します。

catch(Exception e)
{
    Exception ex = new Exception("ID = 1", e);
    ErrorSignal.FromCurrentContext().Raise(ex);
}

表示されます

System.Exception: ID = 1 ---> System.NullReferenceException: Object reference not set to an instance of an object.
于 2010-09-28T13:24:56.117 に答える
3

次のようなこともできることがわかりました。

Elmah.ErrorSignal.FromCurrentContext().Raise(new NotImplementedException("class      FbCallback.Page_Load() Request.Url= " + Request.Url));

自分のメッセージをログに記録します。次に、ブラウズすると

http://localhost:5050/elmah.axd

メッセージが NotImplementedException 型として表示されます。あまりきれいではありませんが、機能します。

于 2011-06-14T19:13:56.720 に答える