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 처리 추적의 상관 관계를 지정할 수 있는 기회는 손실됩니다.
샘플 설정, 빌드 및 실행
Windows Communication Foundation 샘플 에 대한One-Time 설정 절차를 수행했는지 확인합니다.
솔루션의 C# 또는 Visual Basic .NET 버전을 빌드하려면 Windows Communication Foundation 샘플빌드의 지침을 따릅니다.
단일 또는 컴퓨터 간 구성에서 샘플을 실행하려면 Windows Communication Foundation 샘플 실행의 지침을 따릅니다.