2009-10-29 4 views
6

내가 일하는 회사는 .NET에서 응용 프로그램을 다시 디자인하고 있습니다. 우리의 응용 프로그램은 소프트웨어를 서비스 모델로 사용하여 판매됩니다.비즈니스 응용 프로그램에서 사용자 동작 추적

우리는보고 목적 (자산 검색, 양식 다운로드, 양식 작성과 관련된 내용, 사용자 프로필의 스냅 샷 및 로그인시 상세 정보 등)을 위해 소프트웨어의 모든 사용자 활동을 추적합니다.). 이전에 우리는 이전 응용 프로그램에서 이러한 모든 세부 사항을 완료하기 위해 매우 강력한 추적 논리를 작성했습니다.

.NET 응용 프로그램에서이 초기 재 설계를 완료하기 전에 누군가가 선반 추적 솔루션 또는 과거에 구현 한 개방형 소스 추적 시스템에 대한 권장 사항이 상당히 강력하다는 것을 알고 싶었습니다.

세부 추가 : 우리가 추적 할 필요가 있고 우리의 응용 프로그램 만 명으로 필요하지 않습니다 어디에서 오는지에 대한 자세한 있도록 회사 인트라넷 사이트를 통해 액세스 (우리의 응용 프로그램에 고유 한) 사용자 정의 데이터를 많이 우리는 이미 이것을 알고 있습니다.

페이지 조회수를 추적 할 계획이므로 필요한 경우 사용자 방문을 다시 작성할 수 있습니다.

EDIT (11/20/2009) : 내 문제에 꼭 맞는 선반 솔루션이 아닌 것 같지만 다음 질문에서 우리가 구현할 디자인과 방향으로이 질문을 업데이트 할 것입니다. 몇 주. 따라서이 질문에 어떤 일이 발생했는지 관심이 있다면 곧 다시 확인하십시오.

답변

0

Microsoft's Enterprise Library에는 보고서 처리를 위해 예외 처리/기록을 위해 필요할 수도있는 기본 배관 작업에 도움이되는 일부 부품이 있습니다. log4net과 같은 다른 소프트웨어 패키지가있어 다른 사람들이 제안 할 수있는 응용 프로그램의 특정 부분에서 작동 할 수도 있습니다.

그들이 당신을 위해 얼마나 잘 작동하는지 평가할 수있는 몇 가지 아이디어가 있습니다.

+0

log4net은 로깅을위한 훌륭한 응용 프로그램이지만 강력한 개체 세부 정보를 추적하려는 경우 사용하기 어려울 수 있습니다. 일반적인 로거에서 데이터베이스에 필요한 모든 정보를 얻을 수 있다면 log4로 이동하십시오. –

+0

@Russell - log4net은 로깅을위한 훌륭한 애플리케이션이지만 견고한 객체 세부 정보를 추적하는 것은 어렵습니다. 우리가 전체 추적을 코딩하는 것으로 끝내면 나는 sourceforge 나 다른 것에 게시 할 수있는 프레임 워크를 추상화하려고 시도 할 것입니다. 나는 몇몇 것들을 위해 핸들러/모듈을 연결하고 메인 "페이지"클래스를 통해 추적 이벤트 와이어를 생성 할 것입니다. – Dan

1

저희 회사는 사용자 동작 추적에 log4net을 사용합니다. 또한 사용자가 응용 프로그램에서 수행하는 작업에 대해 데이터베이스에 삽입 된 작업이 있습니다. log4Net을 사용하면 로그 내용과 기록 ​​위치를 세밀하게 파악할 수 있습니다. 여기에 버전 1.2.10 용 바이너리의 direct link 다운로드가 있습니다 (오늘 최신). 일단 구성하면 정보를 사용하고 기록하기가 정말 쉽습니다. 이 도움이

희망,

스콧

+0

log4net은 사용자의 동작을 추적하기 위해 설계되었으며 일반 응용 프로그램 로깅/디버깅을 위해 log4net을 이미 사용하고 있습니다. 이에 대한 귀하의 의견에 감사드립니다. – Dan

2

음 ... 각 (loggin에) 당신이 언급 한 수준과 다른 도구를 추적 정말 세 가지 유형이 있습니다. 게시물에

당신이 언급 : 페이지를 사용자의 방문을 추적

  1. : 나 여기에 웹 서버의 기능이 될 것입니다. IIS (당신이 .Net이라고 말했기 때문에 IIS라고 가정 함)는이 모든 것들을 기록 할 것입니다. 그 정보를 찾기위한 몇 가지 도구가 있습니다.

  2. 거래 내역 : 사용자가 보고서를 인쇄 한 것처럼 보입니다. 사용자가 프로세스를 실행 한 경우 등이 있습니다. 이러한 데이터는 항상 변경되는 모든 데이터에 고유하지 않습니다. log4net 및 IoC 컨테이너와 같은 도구를 사용하여 비즈니스 개체에 이러한 유형의 로깅을 주입하는 것이 효과적입니다.

  3. 데이터 수정 : 이것은 데이터 수준 추적입니다. 이를 수행하는 몇 가지 방법이 있습니다. 그러나 나는 그것을 데이터베이스에 가깝게 두는 것이 좋습니다. 아마도 DAL에서 더 쉽게 수행 할 수 있지만 누군가가 응용 프로그램 외부의 데이터베이스에서 데이터를 변경하면 어떻게됩니까? 물론 그것은 귀하의 경우에는 가능하지 않을 수 있습니다. 나는 이것을 트리거로 처리하는 것을 보았습니다. 그러나 SQL 2008은 change tracking inbuilt를 추가했습니다.

그래서 저는 세 가지 도구를 모두 사용해야한다고 말합니다. 아마도 모든 데이터를 단일 테이블 또는 두 개의 테이블로 통합하여보기 및 마이닝을 단순화 할 수 있습니다.

0

간접 수준. 두 요청을 모두 기록하고 DB에 매개 변수를 요청하는 입력 필터 (Apache?)를 사용하여 역방향 프록시를 구현합니다. 보고 및 세션 레크리에이션이 크게 완화됩니다.

+0

비즈니스 응용 프로그램에서 추적하려는 정보의 대부분은 일반적으로 요청을 통해 앞뒤로 전달되지 않습니다. – Dan

관련 문제