我怎么才能在我想要的时候使用Elmah记录器? 我有ErrorsController,只有当excpetion未知时才需要记录它:
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>
但它完全忽略了所有内容,即使我手动记录也是如此。
答案 0 :(得分:3)
我理解为什么过滤器会忽略错误 - 因为在使用Elmah.ErrorSignal.FromCurrentContext().Raise()
时我们会“模拟”获取错误的过程,而这些错误属于过滤器。
我们应该使用Elmah logger方法将错误添加到日志中来代替这种方法:
Elmah.ErrorLog.GetDefault(System.Web.HttpContext.Current).Log()
此方法会向日志添加错误,下面的过滤器会忽略所有其他内容:
<errorFilter>
<test>
<regex binding="Context.Request.Url" pattern="." />
</test>
</errorFilter>
毕竟我有一个问题 - <errorFilter>
中的名称标签只能是test
?
答案 1 :(得分:0)
您可以在Web.Config
文件中对其进行配置。查看this wiki