2011-12-14 1 views
5

안녕하세요. 조언이 필요합니다.asp.net mvc 사이트에서 통계 수집?

타사 도구 (예 : Google anayltics)없이 내 사이트에서 사용자 활동을 추적하는 방법이 필요합니다.

기본적으로 내 사이트에 오는 모든 요청은 사용자의 정보를 수집하고 DB에 쓰는 비동기 작업을 시작해야합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

비동기 httphandler를 작성하려고했지만 작동하지 못했습니다. 각 요청마다 여러 번 조회됩니다 (CSS jpg와 같은 모든 자원 파일 용).

+1

이것은 지난 3 년간 잘 해왔습니다. http://codereview.stackexchange.com/questions/4659/optimizing-a-fire-and-forget-page-tracker 좀 더 빨리 도움을 얻으려고 올렸지 만 3 년 동안 2 백만 행 이상이 사용되었습니다. 지금까지 테이블에. 더 많은 것이 될 수 있지만 때때로 나는 가지 치기를합니다. –

+0

Tim에게 감사드립니다. 나는 사용자 정의 필터를 사용하여 끝났다. 저는 global.asax 파일에 등록했습니다. – usermon

답변

2

저는 현재 비슷한 것을하기 위해 log4net을 사용하고 있습니다.

나는이 article과 매우 유사한 log4net을 설치했습니다. 그런 다음 컨트롤러에 연결할 수있는 ActionFilterAttribute를 상속하는 로거 특성을 만들 수 있습니다. 개인적으로 로거 특성을 적용한 기본 컨트롤러가 있습니다.

특성에서 OnActionExecuting을 무시하고 원하는 log4net 로거에서 현재 실행중인 작업에 대한 모든 정보를 기록합니다. 그냥 당신이 mvc 배관 중 하나를 망치고 싶지 않아 base.OnActionExecuting (filtercontext)를 포함되었는지 확인하십시오, 당신은 단지 지점에 몇 가지 로깅을 할 후킹.