Skip to main content
 首页 » 编程设计

exception-handling之将单个 Elmah.axd 用于具有单个 DB 日志的多个应用程序

2024年12月31日21lvdongjie

我们有一个用于存储来自多个应用程序的错误的 SQL 日志。我们已为每个应用程序禁用 elmah.axd 页面,并希望有一个新应用程序专门显示来自所有向公共(public) SQL 日志报告错误的应用程序的错误。

到目前为止,即使所有错误的应用程序都使用公共(public) SQL 日志,它也只显示来自当前应用程序的错误。有没有人这样做过? elmah 代码中的哪些内容可能需要调整?

请您参考如下方法:

我假设“SQL 日志”是指 MSSQL Server ......如果是这样,完成你想要的最简单的方法可能是编辑在 SQL Server 数据库中创建的包含错误的存储过程。

为了获得错误列表,ELMAH dll 调用 ELMAH_GetErrorsXML proc 将应用程序名称作为参数,然后 proc 使用 过滤返回WHERE [Application] = @Application 条款。

只需从 ELMAH_GetErrorsXML 中删除 WHERE 子句即可proc,并且无论应用程序如何,都应返回所有错误。

要正确获取单个错误记录,您必须对 执行相同操作。 ELMAH_GetErrorXML proc,因为它还按应用程序过滤。

当然,这会影响从这个特定数据库中检索错误的任何应用程序,但我假设在你的情况下你只会拥有一个,所以这应该很好。

警告:我没有试过这个,所以我不能保证结果......