有没有一种简单的方法来记录ASP.NET应用程序中的所有异常?我已经通过Application_OnError事件记录了未处理的异常,但我希望即使在页面级别处理异常时也进行日志记录。
非常感谢。
* 记录几乎所有未处理的异常。
- staterium我同意Collin的看法,你应该在捕获异常时记录日志(不要重新抛出异常)。
但是如果你需要在不进行太多代码修改的情况下记录每个异常,那么可以处理AppDomain.FirstChanceException事件,这样你就可以得到所有的异常(也许有些过多了:p,但它可以帮助你清理代码)。
ASP.NET 健康监控以一种优雅而相当自动的方式实现了这一点(无需手动捕获异常):
当你点击第一个链接时,会出现一个如何启用和配置 ASP.NET 健康监控的示例。您需要在 web.config 文件中进行配置。
要记录到数据库,您可以使用 ASP.NET SQL Server 注册工具创建相应的表格:ASP.NET SQL Server 注册工具 (Aspnet_regsql.exe)
我真的很喜欢它。对于手动日志记录,模式和实践企业库的日志应用块可能适合您,但这略有些偏题。
Matthias
我认为没有任何自动记录已处理异常的方法。如果您已经为未处理的异常执行了Application_OnError日志记录,那么恐怕Colin是正确的,您将不得不在捕获块中调用日志记录组件以记录您想要记录的已处理异常。