我们有一个用于存储来自多个应用程序的错误的 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,因为它还按应用程序过滤。
当然,这会影响从这个特定数据库中检索错误的任何应用程序,但我假设在你的情况下你只会拥有一个,所以这应该很好。
警告:我没有试过这个,所以我不能保证结果......