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