如果这是一个好主意,请提供指导......
我有一个客户希望在系统中记录非常详细的应用程序。他们想要跟踪每次点击以及被点击的页面和控件。
我在想 SQL 服务器上的一个很好的存储过程可以让我保留这些信息,但是将那个级别的信息输入数据库是个问题。
我正在考虑在 EF 中添加一个条目,以便在每个 ActionResult 代码块中将信息发布到 SQL 服务器中,但它发生在我身上,也许我可以覆盖 ActionResult 并这样做......
有人做过这样的事吗?
蒂亚
如果这是一个好主意,请提供指导......
我有一个客户希望在系统中记录非常详细的应用程序。他们想要跟踪每次点击以及被点击的页面和控件。
我在想 SQL 服务器上的一个很好的存储过程可以让我保留这些信息,但是将那个级别的信息输入数据库是个问题。
我正在考虑在 EF 中添加一个条目,以便在每个 ActionResult 代码块中将信息发布到 SQL 服务器中,但它发生在我身上,也许我可以覆盖 ActionResult 并这样做......
有人做过这样的事吗?
蒂亚
您可以使用ActionFilters
. 这篇文章甚至还有一个日志示例。顺便说一句,相同的操作过滤器也可以在调试过程中为您提供帮助,因此您可以查看异常之前发生的情况。
如果您的客户想要超级疯狂的跟踪信息,您可以记录MiniProfiler 的日志记录和跟踪信息,其中包含各种额外信息,例如实际的数据库调用等。
但正如 Andre 已经提到的,使用不同的数据库,并异步保存结果。
此方法记录应用程序中实际发生的情况、用户操作的实际结果、如果您的客户需要日志记录以进行审计或类似的事情,ActionFilters
都适合您。
如果您的客户想要跟踪使用统计信息,例如网页热图,那么请查看搜索结果 :-)
这不是一个回答,但有一点你必须考虑,我想讨论一下。
如果您需要如此详细的跟踪日志(例如用户在页面上单击的位置),我强烈建议您不要将这些日志存储在应用程序使用的同一数据库中,因为可扩展性将是一个问题。此外,跟踪日志非常适合 NoSQL 数据库。由于这些数据库中的大多数都使用 REST API,因此这是使用 javascript 跟踪用户交互的完美解决方案。
想想看。您将拥有一个独立的 REST Web 服务来存储您的跟踪日志。它们可以从 C#(从控制器或任何地方)和视图轻松发送。
任何反馈将不胜感激。正如我所说,这不是答案,而是将其视为头脑风暴。
问候