다음을 통해 공유


추적 확장

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 속성으로 표시되는 추적 수준을 off로 설정하는 것과 같지 않습니다.

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

    ...

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

성능 비용 절감

ActivityTracing 추적 소스에서 System.ServiceModel을 off로 설정하면 ServiceModel 동작 추적이 포함되지 않고 사용자 정의 동작 추적만 포함된 추적 파일이 생성됩니다. ServiceModel 활동 추적을 제외하면 훨씬 더 작은 로그 파일이 생성됩니다. 하지만 WCF 처리 추적을 상호 연결할 기회는 없어집니다.

샘플 설치, 빌드 및 실행

  1. Windows Communication Foundation 샘플의 일회 설치 절차를 수행했는지 확인합니다.

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

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

참고 항목