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 回答