asp.net-mvc - 手动 Elmah 日志记录

标签 asp.net-mvc elmah

如何仅在需要时使用 Elmah 记录器? 我有 ErrorsController,只有当异常未知时才需要记录它:

Elmah.ErrorSignal.FromCurrentContext().Raise(new Exception(string.Format("{0}, {1}", controller, action), exception));

我没有实现ElmahAttributes,Elmah仅在web.config中添加。 我怎样才能做到这一点?我有想法使用一些 errorFilter 来过滤所有传入的错误,但我认为这不是很好。

UPD

我添加了忽略所有错误的过滤器:

<errorFilter>
  <ignoreAll>
      <regex binding="Context.Request.Url" pattern="." />
  </ignoreAll>
</errorFilter>

但它绝对忽略了所有内容,甚至是我调用手动记录的内容。

最佳答案

我明白为什么过滤器会忽略错误 - 因为当使用 Elmah.ErrorSignal.FromCurrentContext().Raise() 时我们正在“模拟”出现错误的过程,并且该错误属于过滤器。 我们应该使用 Elmah 记录器方法来将错误添加到日志中,而不是使用此方法:

Elmah.ErrorLog.GetDefault(System.Web.HttpContext.Current).Log()

此方法会将错误添加到日志中,并且下面的过滤器将忽略所有其他内容:

<errorFilter>
  <test>
    <regex binding="Context.Request.Url" pattern="." />
  </test>
</errorFilter>

毕竟我有一个问题 - 里面的名字标签 <errorFilter>只能是test

关于asp.net-mvc - 手动 Elmah 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6662517/

相关文章:

c# - Razor View 中的 ViewModel 与 InputModel

asp.net - 如何渲染另一个项目的局部 View

c# - 如何使用 Application Insights 实现自定义错误页面

asp.net-mvc - ELMAH 需要 System.Data.SqlServerCe.dll

c# - 动态网址路由

c# - 将 PDF 流写入响应流

smtp - Elmah 在开发服务器上发送错误邮件,但不在生产服务器上发送

c# - ServiceStack 日志记录设置

sql-server - ELMAH 错误和经典 Asp

asp.net - 查询输出 ELMAH_Error sql server 表的 AllXml 列的内容