2011-12-14 76 views
5

嗨,我需要一些建议。在asp.net mvc网站上收集统计信息?

我需要一种方法来跟踪用户在我的网站上的活动,而无需第三方工具(如google anayltics)。

因此,基本上任何请求到我的网站我需要一个异步任务的火,会收集用户的信息,并写入数据库。什么是最好的方法来做到这一点?

我试图写一个异步httphandler,但我无法去工作。每次请求都会多次触发(对于所有资源文件,例如css jpg ...)。

+1

这在过去的3年里一直很好。 http://codereview.stackexchange.com/questions/4659/optimizing-a-fire-and-forget-page-tracker我发布了一些帮助,使其更快,但它已工作了3年,超过200万行在表中。会更多,但我不时修剪。 – 2011-12-14 01:12:39

回答

2

我正在使用log4net来做类似的事情。

我安装我的log4net非常类似于这个article做了什么。之后,您可以创建一个记录器属性,该属性继承可以附加到控制器的ActionFilterAttribute,我个人拥有一个将我的记录器属性应用于的基础控制器。

在您的属性中,您将覆盖OnActionExecuting并记录您所需的log4net记录器中当前正在执行的操作的所有信息。只要确保你包含base.OnActionExecuting(filtercontext)你不想搞砸任何mvc管道,你只需要在某个点上挂钩来做一些日志记录。