문제

ASP MVC 앱에 사용자 활동을 기록하는 좋은 전략이 있습니까? (ActionFilters/ httpModules).

마지막 사용자 활동 (StackoverFlow와 같은 "23 분 전에 보았습니다")과 같은 페이지와 컨트롤러가 사용되었으며 버튼이나 링크가 클릭 한 내용을 더욱 푸시합니다.

나는 Elmah를 설치했지만 오류 로깅에 대해서만 알고있는 한.

PD : Google 웹 로그 분석은 옵션이 아닙니다.

도움이 되었습니까?

해결책

당신은 a를 사용해 볼 수 있습니다 포스트 쇼트 로깅을 수행하기 위해서는 멀티 캐스트 기능이 그런 일에 유용 할 수 있습니다. 옵션이 아닌 경우 모듈이 가장 쉬운 모듈 일 것입니다 (파이프 라인의 해당 시점에서 필요한 사용자 정보를 얻을 수 있다고 가정).

다른 팁

경고 : 이것은 2009 년 MVC .NET RC1 용으로 작성되었으며 더 이상 구문 적으로 정확하지 않을 수 있습니다.

액션 필터 속성 이것에 완벽합니다. [YourAttributeName] 컨트롤러 상단 (또는 다른 컨트롤러가 상속받은 애플리케이션 컨트롤러가있는 경우 응용 프로그램에서 한 번만 필요합니다).

예를 들어:

namespace the_name_space
{
    [Log]
    public class ApplicationController : Controller
    {

이 시점 부터이 속성은 각 조치가 컨트롤러에서 실행되기 전에 호출됩니다. [Log] 같은 방식으로 직전에.

필요한 로깅 기능을 얻으려면 재정의하고 싶을 것입니다. OnResultExecuting 그리고 OnResultExecuted, 둘 다 꽤 자기 설명입니다.

예를 들어:

public class LogAttribute : ActionFilterAttribute
{
    protected DateTime start_time;

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        start_time = DateTime.Now;
    }

    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        RouteData route_data = filterContext.RouteData;
        TimeSpan duration = (DateTime.Now - start_time);
        string controller = (string)route_data.Values["controller"];
        string action = (string)route_data.Values["action"];
        DateTime created_at = DateTime.Now;
        //Save all your required values, including user id and whatnot here.
        //The duration variable will allow you to see expensive page loads on the controller, this can be useful when clients complain about something being slow.
    }
}

방금이 두 게시물을 우연히 발견했습니다 리온 윌리엄스 이것은 매우 간단한 방법을 설명합니다.

ASP.NET MVC ActionFilters를 사용하여 감사 트레일을 구현합니다

ASP.NET MVC에서 ActionFilters를 사용하여 고급 감사 트레일 생성

고급 게시물은 요청의 데이터를 저장하고 해당 데이터를 추가 필터링 할 수 있으므로 정말 좋습니다.

지금 내 앱에서 이것을 구현하겠습니다.

@Rory의 아이디어는 우수합니다. PostSharp는 당신이 이것에 필요한 것입니다. 당신은 그것을 연결하는 것을 고려할 수 있습니다. ASP.NET 건강 모니터링

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top