2011-12-14 62 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管道,你只需要在某個點上掛鉤來做一些日誌記錄。