【发布时间】:2008-11-29 11:46:38
【问题描述】:
我正在使用 asp.net 构建一个相当大的站点(如果有任何兴趣,可以使用表单),我想知道我是否需要一个日志框架,例如 log4net。 我以前使用过这样的框架,但我不知道如何将它用于此类项目。 通常我认为客户交付的应用程序需要日志记录,可以将日志发送回然后分析错误。 你觉得呢?
【问题讨论】:
-
播客曾提到 log4net 导致了一些死锁问题....可能想熟悉一下?
我正在使用 asp.net 构建一个相当大的站点(如果有任何兴趣,可以使用表单),我想知道我是否需要一个日志框架,例如 log4net。 我以前使用过这样的框架,但我不知道如何将它用于此类项目。 通常我认为客户交付的应用程序需要日志记录,可以将日志发送回然后分析错误。 你觉得呢?
【问题讨论】:
见鬼 - 日志记录对于 Web 应用程序非常非常重要。如果您正确地登录,它会使故障排除所以变得容易得多。
Log4Net 作为一个框架可能是一个不错的选择。您可能还需要一种从多台服务器收集日志的方法 - 即使您目前不使用多个服务器,也可能值得建议您在某个时候这样做。
集中化的一个选项是将日志复制到数据库中 - 有关这方面的更多意见,请参阅 this question。
【讨论】:
所有类型的应用程序都需要日志。如果您交付您的应用程序,无论是客户交付的还是内部交付的,无论是 Web 表单还是智能客户端/Windows 应用程序日志/仪表化都是它的支柱。
您的应用程序的最终用户如何知道该应用程序正在按预期工作? 如果发生任何错误会发生什么? 生产团队将如何诊断错误? 最终用户/管理员将如何主动分析应用程序并预防未来可能出现的问题?
由于您使用的是 ASP.net,我建议您也看看 ASP.net 的“健康监控”功能。
您可以为不同类型的日志记录编写自定义事件和提供程序,并可以将其配置为同步/异步使用。
您可以将 log4net 或企业日志记录块与“健康监控”一起使用,并且可以轻松创建全面的日志记录/仪器解决方案。
【讨论】:
我肯定会担保企业信息接收器(我认为这是正确的名称,它是用于日志记录的 Microsoft api)或企业库。
我将后者用于各种事情,例如缓存、日志记录等,它是一个非常强大且节省时间的工具。我也使用健康监测。这是针对我正在构建的大型 Web 应用程序。
在登录 .NET 时,您的选择被宠坏了,以上两个建议都很棒。
【讨论】:
如果您需要了解应用程序的行为方式、错误发生的条件、谁以及如何使用应用程序(IP 地址、时间、链接...),则需要记录日志
大多数人使用它来跟踪程序执行,以便他们可以回答诸如“它为什么停止工作?”、“它什么时候停止工作?”之类的问题。等等
如果您对应用程序的代码了解得非常清楚,并且可以轻松重现问题,那么我猜日志记录对您来说是多余的 :)
【讨论】: