我所工作的公司正在重新设计我们的.NET应用程序。我们的应用程序使用软件即服务模式销售。
我们会跟踪软件中的所有用户操作以进行报告(搜索内容,下载资源,填写表单,与他们创建的表单相关联的内容,用户个人资料的快照以及登录时的详细信息等) 。以前我们编写了一个非常强大的跟踪逻辑来完成旧应用程序中的所有这些细节。
在我完成.NET应用程序的初步重新设计之前,我想知道是否有人提出了他们过去实施的现成跟踪解决方案或开源跟踪系统的建议,这些系统非常强大。
其他详细信息: 我们有很多需要跟踪的自定义数据(特定于我们的应用程序),我们的应用程序只能通过公司内部网站访问,因此我们不需要详细了解人们来自哪里。
我计划跟踪网页点击次数,以便在必要时重新创建用户的访问权。
编辑(2009年11月20日):似乎没有完全符合现成的解决方案来解决我的问题,但我将通过我们将在下一对中实施的设计和方向更新此问题几个星期。因此,如果您对此问题的内容感兴趣,请稍后再回来查看。
答案 0 :(得分:2)
嗯......您提到的跟踪(登录)级别实际上有三种不同类型,每种级别都有不同的工具。
在你的帖子中你提到:
跟踪用户访问的网页: 对我来说,这将是Web服务器的功能。 IIS(我假设IIS,因为你说它是.Net)将为你记录所有这些东西。有几种工具可以挖掘这些信息。
商业交易: 很喜欢,用户打印了一份报告。用户运行了一个进程等。这些并不总是特定于任何数据更改。使用像log4net和IoC容器这样的工具将这种类型的日志记录注入到业务对象中会很有效。
数据修改: 这是数据级别跟踪。有几种方法可以做到这一点。但是,我建议将它放在数据库附近。在DAL中执行此操作可能要容易一些,但如果有人在应用程序之外更改数据库中的数据会怎样。当然,在您的情况下,这可能是不可能的。我已经看到这与触发器完成。但是,SQL 2008补充道 内置change tracking。
所以,我想说你需要三种工具的组合。也许您可以将所有数据合并到一个或两个表中,以简化查看和挖掘它。
答案 1 :(得分:1)
我们公司使用log4net来跟踪用户操作。我们还将操作插入到数据库中,以便用户对我们的应用程序执行任何操作。使用log4Net,您可以非常精确地记录您记录的内容和记录的位置。这是版本1.2.10的二进制文件direct link下载(截至今日)。配置完成后,它就非常易于使用和记录信息。
希望这有帮助,
斯科特
答案 2 :(得分:0)
Microsoft's Enterprise Library有一些部分可能对您可能需要用于报告目的的异常处理/日志记录的一些基本管道有所帮助。可能还有其他软件包,如log4net,也可能适用于其他人可能建议的应用程序的特定部分。
只有几个想法可以评估它们对你有用的效果。
答案 3 :(得分:0)
间接水平。使用输入过滤器(Apache?)实现反向代理,将请求和请求参数记录到DB。报告和会话娱乐变得非常轻松。