你们可以分享一下基于asp.net 3.5 web应用程序的错误处理/日志记录策略的知识吗?
答案 0 :(得分:15)
Log4net logging: What have you found to be useful?
What are the best practices to log an error?
What should be included in the state of the art error and exception handling strategies?
What information should I be logging in my web app?
日志记录是每个应用程序中非常关键的一部分,因此您必须做好这一点。
答案 1 :(得分:2)
您应该考虑log4net。有关详细信息,请参阅this question。
它非常强大,快速且易于使用。
答案 2 :(得分:2)
发生错误时,您不应尝试捕获它或直接在应用程序的代码中记录它,除非您希望从中恢复错误。例如,如果您有一个数据驱动的Web应用程序并且数据库处于脱机状态,那么您无法从中恢复。但是,如果您要发送电子邮件并且有两个电子邮件服务器而第一个服务器已关闭,则可以使用第二个电子邮件服务器进行恢复。
我见过许多ASP.NET应用程序,其中开发人员使用try...catch
块来“吞下”错误。实际上,只有在发生错误时存在已知的恢复策略时才会使用try...catch
块(例如在我之前的示例中使用备用电子邮件服务器)。如果您的应用程序中有多个try...catch
块,那么您可能做错了。
您希望避免过度使用try...catch
块的原因是您希望错误记录和通知与您的应用程序正交。您不希望在每个页面或组件中剪切和粘贴错误日志记录代码。相反,您希望添加一些机制,以便自动记录任何未处理的异常,并且自动通知开发人员。
好消息是这样的错误记录和通知功能很容易实现。我的偏好是使用ELMAH,一个免费的开源错误日志记录和通知系统。或者,您可以使用ASP.NET的内置错误日志记录系统Health Monitoring。
有关ELMAH和运行状况监控的详细信息,以及有关自定义错误页面和设置所有内容的指导,请参阅我的文章Exception Handling Advice for ASP.NET Web Applications。
快乐编程!
答案 3 :(得分:0)
我将与Java无关,我将从OWASP添加文档 - 打开Web应用程序安全项目。我正在实施日志记录/错误处理策略,它非常有用。
在stackoverflow上已经回答的另一个好问题: * What are the best practices to log an error?