2009-08-07 5 views
0

나는 추적 메커니즘을 직접 구현하고있다. 이제 내가 알고 싶은 것은이 메커니즘을 구현하는 가장 좋은 방법이 무엇인지 (즉, 아키텍처)..net에서 추적을 구현하는 방법

class Tracer { 
    public void NewEventRegistered(etc) {...} //this is the method I use to send this class the events I want to register 

    event newEventRegistered(..) //this is the event the user is going to use to catch all the events in the application that have been sent to NewEventRegistered method. 
} 

을하지만 그때 나는 나를 쓰기를 WriteLine 메소드를 구현하자 TraceListener에서 클래스가 보았다 : 우선이 같은 클래스를 만드는 생각했다. 큰 단점은 두 가지 방법 모두 문자열을 인수로 허용하고 문자열보다 많은 정보를 보낼 수 있기를 원합니다. 어떻게해야합니까? 어쩌면 내 첫 번째 이데올로기가 최고일까요?

편집 : PostSharp와 같은 많은 추적 메커니즘이 있다는 것을 알고 있습니다. 학습 목적으로이 작업을 수행하고 있습니다!

답변

2

문자열을 허용하는 Write 및 WriteLine 함수는 재정의해야하는 최소한의 함수 쌍만 나타냅니다. TraceListener에는 다른 쓰기 함수가 있으며, 선택적으로 수용 오브젝트를 겹쳐 쓸 수 있습니다.

그러나 TraceListener는 프레임 워크 추적 기능과 함께 사용하도록 설계되었습니다. 따라서 클래스를 사용하여 프레임 워크를 통해 출력 추적을 "청취"하지 않으면 특정 추적 요구에보다 적합한 인터페이스를 사용하는 것이 더 나을 수 있습니다.

아마도 System.IO.TextWriter에서 상속하는 것이 좋습니다. 그것은 많은 쓰기 방법을 가지고 있지만, 나는 그들이 Write와 WriteLine을 통해 모든 출력을 라우팅한다고 믿습니다. 그래서 당신이이 두 함수를 오버라이드한다면, 당신은 많은 것을 무료로 얻을 수 있습니다.

관련 문제