elmah定制提供商及暴露事件
我想知道如何创建自定义提供程序来存储错误日志,例如。 Windows 事件查看器的提供者。
如果到目前为止不可能,我还想知道是否有任何可以覆盖的公开事件,以便我可以注入我的代码,获取异常,做任何我想做的事情。
我知道 Global.asax 中有一些我可以覆盖的事件。喜欢过滤:
void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
}
void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs )
{
}
还有更多吗?我在哪里可以找到这些事件的列表?
I am wondering how do I create my customized provider for storing the error logs, eg. a provider to windows event viewer.
If it is not possible so far, I am also wondering is there any exposed events I can override, so that I can inject my code, get the exception, do whatever I want.
I know there are some event I can override in Global.asax. like for filtering:
void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
}
void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs )
{
}
is there more? where can I find the list of these events?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
关于创建 Elmah 事件日志提供程序,如果您打算将错误信息存储在事件日志中并同时使用 ELMAH UI,那么这可能不是一个好主意。 相关问题对此有 Matthew Daugherty 的出色回答话题:
为了创建自定义日志记录提供程序,您可以子类化 ErrorLog 并覆盖 GetError(通过 id 获取单个错误;由 Elmah UI 使用)、GetErrors(列出页面上的所有错误;由 Elmah UI 使用)和 Log(日志)一个新的错误)方法来提供您自己的存储机制。请参阅本文了解有关如何实现自定义错误日志的示例。
然后,您在配置中注册新的 ErrorLog 提供程序:
关于事件,它们由 Elmah 模块发出。在 ErrorLogModule 中有两个事件 - Logged 和 Filtering。在 ErrorMailModule 中有四个事件 - Filtering、Mailing、Mailed 和 DisposeMail。
About creating an Elmah Event Log provider it's probably not a good idea if you intend to store the error information in the event log and also use the ELMAH UI. A related question has an excellent answer from Matthew Daugherty on this topic:
In order to create a custom logging provider you can subclass ErrorLog and override the GetError (gets a single error by id; used by the Elmah UI), GetErrors (lists all errors on a page; used by the Elmah UI) and Log (logs a new error) methods to provide your own storage mechanism. See this article for an examle on how to implement a custom ErrorLog.
You then register your new ErrorLog provider in the config:
Regarding the events, they are emitted by the Elmah modules. In the ErrorLogModule there are two events - Logged and Filtering. In the ErrorMailModule there are four events - Filtering, Mailing, Mailed and DisposingMail.