我对如何使用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所能做的就是记录原始异常,我怎样才能记录自己的调试信息?
答案 0 :(得分:18)
您可以抛出一个新的Exception设置原始内容作为内部异常,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.
答案 1 :(得分:3)
我发现我也可以这样做:
Elmah.ErrorSignal.FromCurrentContext().Raise(new NotImplementedException("class FbCallback.Page_Load() Request.Url= " + Request.Url));
记录我自己的消息。然后在我浏览
时http://localhost:5050/elmah.axd
我将消息视为NotImplementedException类型。 不是很漂亮但是很有效。