asp.net c#中最佳审计跟踪流程是什么?

5

在asp.net应用程序中记录操作、活动等的最佳方法是什么?此外,哪种存储方式最适合记录这些内容?XML? DB?

非常感谢。

4个回答

6
我最讨厌的答案,实际上适用于这里:“这取决于”。具体而言,它取决于以下几个方面:
  • 日志信息是为谁而记录的?是否针对业务用户(即是否存在实际业务需求),是否面向应用程序管理,是否需要了解常用功能等。
  • 记录信息的粒度是什么?例如:您只需要知道是否使用了搜索功能,还是想知道搜索查询,或者还需要有关实际搜索结果的信息?
  • 信息的准确性和完整性需要多高?审计跟踪要求通常非常严格,技术要求通常不那么严格。
  • 您是否希望能够回滚操作/活动?如果是,由谁来执行(业务用户、支持人员)
  • 您的部署情况如何?如果您只有一个服务器,则将日志记录到文本文件或XML比在农场/负载平衡环境中更可行。

对于应用程序日志记录,请查看诸如log4net或Enterprise Library日志记录应用程序块之类的知名提供商;两者都允许您配置要记录到哪里(文本文件、数据库等)。
对于记录数据库操作,请在数据库中寻找解决方案。 SQL Server 2008的几个版本都内置了审核支持,Oracle已经有这个功能多年了。


1

PostSharp 可能是一个不错的选择。记录到数据库中。

-- 编辑:

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


谢谢您的快速回复!您能否详细说明在数据库中记录与使用XML/其他方式记录之间的优势?非常感谢您,Silky! - Martin Ongtangco
3
XML就是一个文件。随着所有日志记录,它会变得非常大,管理起来很麻烦,并且很难查询。数据库专为查询而建,具有出色的备份设施,易于操作,并允许您确保一个良好的完整性驱动系统。当然,它的布局灵活性不如XML(所以您不能只是编写一个类并在其中原生地编写所有属性),但这绝对是我更喜欢的选择。最坏的情况下,您可以将一些相关的XML序列化到一个字段中(例如用于类规范)。 - Noon Silk
如果记录日志的数据库损坏了,我可以采取哪些应急措施? - Martin Ongtangco
数据库损坏的典型应急措施:备份。您可以每晚、每周或每月备份数据库,如果发现故障,则恢复到适当的备份。根据故障率需要增加更多备份。 - Noon Silk

0
如果你不需要一个复杂的审计系统,而只是记录你的代码在做什么,我会建议你使用与 .NET Framework 和 ASP.NET 集成的跟踪系统。
使用框架中非常简单的类,你的代码将发出跟踪信息,然后通过配置文件可以将它们发送到不同的存储系统(文件、数据库、Windows 事件等)。你甚至可以创建自己的存储系统跟踪提供程序。

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


0
我会使用:log4net,因为你可以在配置文件中配置和更改输出(文件、邮件、数据库等),因此不必重新构建代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接