首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >人工Elmah测井

人工Elmah测井
EN

Stack Overflow用户
提问于 2011-07-12 10:08:43
回答 2查看 2.1K关注 0票数 2

我怎么能只在我想要的时候才能使用Elmah记录器?我有ErrorsController,只有在未知的情况下才需要日志:

代码语言:javascript
复制
Elmah.ErrorSignal.FromCurrentContext().Raise(new Exception(string.Format("{0}, {1}", controller, action), exception));

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

UPD

我添加了忽略所有错误的筛选器:

代码语言:javascript
复制
<errorFilter>
  <ignoreAll>
      <regex binding="Context.Request.Url" pattern="." />
  </ignoreAll>
</errorFilter>

但是它完全忽略了所有的东西,即使是我手动调用的日志。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-13 06:31:21

我理解为什么过滤器忽略错误--因为当使用Elmah.ErrorSignal.FromCurrentContext().Raise()时,我们将“模拟”获取错误的过程,而这些错误属于过滤器的范围。我们应该使用Elmah记录器方法来将错误添加到日志中,而不是这个方法:

代码语言:javascript
复制
Elmah.ErrorLog.GetDefault(System.Web.HttpContext.Current).Log()

此方法将向日志添加错误,下面的筛选器将忽略其他所有内容:

代码语言:javascript
复制
<errorFilter>
  <test>
    <regex binding="Context.Request.Url" pattern="." />
  </test>
</errorFilter>

在这之后,我在<errorFilter>中有一个问题名标签只能是test

票数 3
EN

Stack Overflow用户

发布于 2011-07-12 10:45:30

您可以在Web.Config文件中配置它。检查这个维基

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6662517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档