我怎么能只在我想要的时候才能使用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>但是它完全忽略了所有的东西,即使是我手动调用的日志。
发布于 2011-07-13 06:31:21
我理解为什么过滤器忽略错误--因为当使用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。
发布于 2011-07-12 10:45:30
您可以在Web.Config文件中配置它。检查这个维基
https://stackoverflow.com/questions/6662517
复制相似问题