跟踪asp.net mvc网站的用户活动/操作?

Jim*_*rts 7 c# asp.net-mvc

我想为我的Web应用程序的所有用户保留每个页面视图的日志.经过足够的时间后,我将使用该日志生成报告.我想让日志记录机制有点灵活,因为我不需要记录每个http请求.

一个示例用例是:公司注册我的Web应用程序,允许5名员工使用该应用程序.我想报告说,上周有3名员工使用了该应用程序.或者表明当年6月至8月期间有4名员工使用过它.

我正在使用asp.net mvc与sql server,如果这有所不同.

它就这么简单吗?使用以下列创建一个sql表:UserId,ControllerName,ActionName,ActionParameters,CreatedOn.然后创建一个ActionFilterAttribute,为每个调用的操作向db添加记录.

是否有任何我应该担心的陷阱(除了可能很大的表格大小)?

Kel*_*sey 6

一些陷阱:

  1. 您将无法执行任何服务器级页面缓存.
  2. 由于您实际记录了每个请求,因此大量数据库写入.
  3. 如果在页面上发生任何操作,您可以存储冗余信息.

我假设您将在某种类型的自定义AuthorizeAttribute中实现此功能,因此您不会在每个控制器上编码它,但随后它将实际上是每个请求可能比您实际需要的更多.

您是否考虑过使用某种类型的IIS日志解析实用程序?它会有很多你需要的信息.