0

如果这是一个好主意,请提供指导......

我有一个客户希望在系统中记录非常详细的应用程序。他们想要跟踪每次点击以及被点击的页面和控件。

我在想 SQL 服务器上的一个很好的存储过程可以让我保留这些信息,但是将那个级别的信息输入数据库是个问题。

我正在考虑在 EF 中添加一个条目,以便在每个 ActionResult 代码块中将信息发布到 SQL 服务器中,但它发生在我身上,也许我可以覆盖 ActionResult 并这样做......

有人做过这样的事吗?

蒂亚

4

2 回答 2

1

您可以使用ActionFilters. 这篇文章甚至还有一个日志示例。顺便说一句,相同的操作过滤器也可以在调试过程中为您提供帮助,因此您可以查看异常之前发生的情况。

如果您的客户想要超级疯狂的跟踪信息,您可以记录MiniProfiler 的日志记录和跟踪信息,其中包含各种额外信息,例如实际的数据库调用等。

但正如 Andre 已经提到的,使用不同的数据库,并异步保存结果。

编辑:

此方法记录应用程序中实际发生的情况、用户操作的实际结果、如果您的客户需要日志记录以进行审计或类似的事情,ActionFilters都适合您。

如果您的客户想要跟踪使用统计信息,例如网页热图,那么请查看搜索结果 :-)

于 2012-07-11T21:13:11.143 回答
0

这不是一个回答,但有一点你必须考虑,我想讨论一下。

如果您需要如此详细的跟踪日志(例如用户在页面上单击的位置),我强烈建议您不要将这些日志存储在应用程序使用的同一数据库中,因为可扩展性将是一个问题。此外,跟踪日志非常适合 NoSQL 数据库。由于这些数据库中的大多数都使用 REST API,因此这是使用 javascript 跟踪用户交互的完美解决方案。

想想看。您将拥有一个独立的 REST Web 服务来存储您的跟踪日志。它们可以从 C#(从控制器或任何地方)和视图轻松发送。

任何反馈将不胜感激。正如我所说,这不是答案,而是将其视为头脑风暴。

问候

于 2012-07-11T21:01:43.220 回答