【发布时间】:2011-03-23 06:17:12
【问题描述】:
在我的团队中,有关于 Web 应用程序异常日志记录的讨论,关于我们是否应该记录到文本文件或事件日志。
谁能告诉我在应用程序中记录异常的更好方法是什么?我已经提到的两个之一还是有更好的选择?
【问题讨论】:
标签: c# asp.net logging event-log
在我的团队中,有关于 Web 应用程序异常日志记录的讨论,关于我们是否应该记录到文本文件或事件日志。
谁能告诉我在应用程序中记录异常的更好方法是什么?我已经提到的两个之一还是有更好的选择?
【问题讨论】:
标签: c# asp.net logging event-log
不要重新发明轮子 - 使用现有的日志库/工具,例如 log4net 或 ELMAH,而不是编写自己的日志库。两者都为您提供了多种选择来记录异常的位置,这取决于您的喜好。
需要考虑的两件事:
1 - 如果您正在登录数据库,但数据库不可用/负载过重,您会登录到哪里?
2 - Windows 事件日志非常轻量级,event log forwarding 意味着您可以自动聚合来自多台机器的日志无需编写任何代码。
【讨论】:
另一个很棒且易于使用的 Logging-Library 是 NLOG
来自网站:
"支持的目标包括:
……还有更多
其他主要功能:
【讨论】:
我更喜欢文本文件,因为它可以提供更大的灵活性和更轻松的导航。我想这是一个偏好问题,但在 Windows 事件日志中的错误之间导航似乎非常麻烦。除了繁琐的导航之外,它还包含您不关心的错误。如果您可以定义格式和内容,那么效率会更高。
【讨论】:
在我工作的应用程序中,我们习惯于在数据库中记录每个异常,因此这种方式更容易将异常详细信息链接到他们被要求填写的“用户错误报告”(这是我们的默认错误页)。它可以帮助我们进行统计,并且如前所述,将异常详细信息与用户对错误的描述联系起来(例如,他采取了哪些步骤来获取该错误等...)
【讨论】:
免责声明:我是KissLog.net日志应用程序的开发者。
log4Net 和 Elmah 非常好,但它们的能力有限。
Elmah 不支持跟踪/日志消息,并且只记录异常,并且 log4Net 不提供用户界面来浏览日志。
您可以尝试使用KissLog.net,这是一个我尝试聚合所有必要日志记录功能(捕获错误、日志/跟踪消息、易于使用的用户界面)的应用程序
【讨论】: