2009-09-17 53 views

回答

4

我最讨厌的答案,居然在这里也适用:“这取决于”。具体来说,它取决于几件事情:

  • 谁是日志记录信息?它是面向企业用户(即,是否有实际业务需求),是在应用程序管理为导向的信息,你需要经常使用的功能的洞察力等
  • 什么是记录信息的粒度?例如:你只需要知道是否使用了搜索功能,你想知道搜索查询还是需要关于实际搜索结果的信息?
  • 如何准确&完整所做的信息必须是?审计跟踪要求通常非常严格,技术要求往往不那么严格。
  • 你希望能够回滚操作/活动?如果是这样,谁去做到这一点(企业用户,支持人员)
  • 什么是您的部署是什么样子?如果您拥有单个服务器,则与使用服务器场/负载平衡环境相比,记录到文本文件或XML更为可行。

对于应用程序日志记录,请查看众所周知的提供程序,如log4net或企业库日志记录应用程序块;两者都允许您配置您想要登录的位置(文本文件,数据库等)。
对于记录数据库操作,我建议在数据库中的解决方案。多个版本的SQL Server 2008内置了对审计的支持,Oracle已经有了这种多年的IIANM。

0

PostSharp可能。登录到数据库。

- 编辑:

这是记录所有代码的操作。要记录所有数据库操作,我会使用触发器。

+0

感谢您的快速响应!您能否详细说明在登录数据库与XML /其他方式之间的优势?非常感谢你柔滑! – 2009-09-17 06:43:08

+2

那么,XML只是一个文件。它会变得非常大,所有的日志记录,烦人的管理,很难查询。 DB是为查询而构建的,具有很好的备份功能,易于执行,并且可以确保完整的驱动系统。当然,它的布局不如XML灵活(所以你不能仅仅写一个类和所有的属性),但这是我的首选。在最糟糕的情况下,您可以将一些相关的XML序列化到一个字段(对于类规范,比如说)。 – 2009-09-17 07:33:16

+0

如果保留日志的数据库已损坏,那么可以在该场景中应用哪些意外事件? – 2009-09-17 08:06:39

0

如果您不需要复杂的审计系统,但只需记录您的代码正在执行的操作,我会建议您使用与.NET Framework和ASP.NET集成的跟踪系统。

在框架中使用非常简单的类,您的代码会发出跟踪,然后通过配置文件将它们发送到不同的存储系统(文件,数据库,Windows事件等)。在配置log4net

,因为你可以配置和改变输出(文件,邮件,数据库,...):你甚至可以创建自己的专卖店系统跟踪提供

http://msdn.microsoft.com/en-us/library/system.diagnostics.trace.aspx

0

我会用文件,所以你不必重建你的代码。