小编典典

如何使用 ELMAH 手动记录错误

all

是否可以使用 ELMAH 执行以下操作?

logger.Log(" something");

我正在做这样的事情:

try 
{
    // Code that might throw an exception 
}
catch(Exception ex)
{
    // I need to log error here...
}

ELMAH 不会自动记录此异常,因为它已被处理。


阅读 71

收藏
2022-05-10

共1个答案

小编典典

直接写日志的方法,从 ELMAH 1.0 开始工作:

try 
{
    some code 
}
catch(Exception ex)
{
    Elmah.ErrorLog.GetDefault(HttpContext.Current).Log(new Elmah.Error(ex));
}

ELMAH 1.2 引入了更灵活的 API:

try 
{
    some code 
}
catch(Exception ex)
{
    Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
}

两种解决方案之间存在差异:

  • Raise方法将 ELMAH 过滤规则应用于异常。Log方法没有。
  • Raise是基于订阅的,并且能够将一个异常记录到多个记录器中。
2022-05-10