我们有一个用于存储来自多个应用程序的错误的 SQL 日志。我们为每个应用程序禁用了 elmah.axd 页面,并希望有一个新应用程序专门显示来自所有向公共 SQL 日志报告错误的应用程序的错误。
到目前为止,即使所有错误的应用程序都使用公共 SQL 日志,它也只显示来自当前应用程序的错误。有没有人这样做过?elmah 代码中的哪些内容可能需要调整?
我们有一个用于存储来自多个应用程序的错误的 SQL 日志。我们为每个应用程序禁用了 elmah.axd 页面,并希望有一个新应用程序专门显示来自所有向公共 SQL 日志报告错误的应用程序的错误。
到目前为止,即使所有错误的应用程序都使用公共 SQL 日志,它也只显示来自当前应用程序的错误。有没有人这样做过?elmah 代码中的哪些内容可能需要调整?
我假设“SQL 日志”是指 MSSQL Server ......如果是这样,完成你想要的最简单的方法可能是编辑在 SQL Server 数据库中创建的包含错误的存储过程。
为了获取错误列表,ELMAH dllELMAH_GetErrorsXML
以应用程序名称作为参数调用 proc,然后 proc 使用WHERE [Application] = @Application
子句过滤返回。
只需从ELMAH_GetErrorsXML
proc 中删除 WHERE 子句,无论应用程序如何,都应返回所有错误。
要正确获取单个错误记录,您必须对ELMAH_GetErrorXML
proc 执行相同操作,因为它还按应用程序过滤。
当然,这会影响从这个特定数据库中检索错误的任何应用程序,但我假设在你的情况下你只会拥有一个,所以这应该很好。
CAVEAT:我没有试过这个,所以我不能保证结果......
是的,它很容易工作。但是,您在 Elmah/Default.aspx 中看不到应用程序名称。我还没有发现它是否可配置 - 只显示一列。