다음을 통해 공유


추적 기능 확대

ExtendingTracing 샘플은 클라이언트 및 서비스 코드에서 사용자 정의 활동 추적을 작성하여 WCF(Windows Communication Foundation) 추적 기능을 확장하는 방법을 보여 줍니다. 사용자 정의 작업 추적을 작성하면 추적 작업을 만들고 추적을 논리적 작업 단위로 그룹화할 수 있습니다. 전송(동일한 엔드포인트 내) 및 전파(엔드포인트 간)를 통해 활동의 상관 관계를 지정할 수도 있습니다. 이 샘플에서는 클라이언트와 서비스 모두에 대해 추적을 사용하도록 설정됩니다. 클라이언트 및 서비스 구성 파일에서 추적을 사용하도록 설정하는 방법에 대한 자세한 내용은 추적 및 메시지 로깅을 참조하세요.

이 샘플은 시작 안내에 기반으로 합니다.

비고

이 샘플에 대한 설정 절차 및 빌드 지침은 이 항목의 끝에 있습니다.

추적 및 활동 전파

사용자 정의 활동 추적을 사용하면 사용자가 추적을 논리적 작업 단위로 그룹화하고, 전송 및 전파를 통해 활동을 상호 연결하고, WCF 추적의 성능 비용(예: 로그 파일의 디스크 공간 비용)을 줄이는 고유한 추적 활동을 만들 수 있습니다.

사용자 지정 원본 추가

사용자 정의 추적은 클라이언트 및 서비스 코드 모두에 추가할 수 있습니다. 클라이언트 또는 서비스 구성 파일에 추적 원본을 추가하면 이러한 사용자 지정 추적을 기록하여 서비스 추적 뷰어 도구(SvcTraceViewer.exe)에 표시할 수 있습니다. 다음 코드에서는 구성 파일에 명명 ServerCalculatorTraceSource 된 사용자 정의 추적 원본을 추가하는 방법을 보여 있습니다.

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
            <listeners>
                <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                    <filter type="" />
                </add>
                <add name="xml">
                    <filter type="" />
                </add>
            </listeners>
        </source>
        <source name="ServerCalculatorTraceSource" switchValue="Information,ActivityTracing">
            <listeners>
                <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                    <filter type="" />
                </add>
                <add name="xml">
                    <filter type="" />
                </add>
            </listeners>
        </source>
    </sources>
    <sharedListeners>
       <add initializeData="C:\logs\ServerTraces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
        name="xml" traceOutputOptions="Callstack">
            <filter type="" />
        </add>
    </sharedListeners>
    <trace autoflush="true" />
</system.diagnostics>
....

활동 간 상관 관계를 만들다

엔드포인트 propagateActivity 간의 활동을 직접 연결하려면 true 추적 원본에서 특성을 System.ServiceModel로 설정해야 합니다. 또한 WCF 활동을 거치지 않고 추적을 전파하려면 ServiceModel 활동 추적을 해제해야 합니다. 다음 코드 예제에서 확인할 수 있습니다.

비고

ServiceModel 활동 추적을 해제하는 것은 속성으로 표시된 switchValue 추적 수준을 해제하는 것과 다릅니다.

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">

    ...

       </source>
    </sources>
</system.diagnostics>

성능 비용 절감

추적 원본에서 ActivityTracing 해제로 설정 System.ServiceModel 하면 ServiceModel 활동 추적이 포함되지 않고 사용자 정의 작업 추적만 포함된 추적 파일이 생성됩니다. ServiceModel 작업 추적을 제외하면 훨씬 더 작은 로그 파일이 생성됩니다. 그러나 WCF 처리 추적의 상관 관계를 지정할 수 있는 기회는 손실됩니다.

샘플 설정, 빌드 및 실행

  1. Windows Communication Foundation 샘플 에 대한One-Time 설정 절차를 수행했는지 확인합니다.

  2. 솔루션의 C# 또는 Visual Basic .NET 버전을 빌드하려면 Windows Communication Foundation 샘플빌드의 지침을 따릅니다.

  3. 단일 또는 컴퓨터 간 구성에서 샘플을 실행하려면 Windows Communication Foundation 샘플 실행의 지침을 따릅니다.

참고하십시오