다음을 통해 공유


Using Filters for Message Logging

이 샘플에서는 메시지 로깅을 위해 필터를 만드는 방법을 보여 줍니다. 필터 조건에 부합하는 메시지만 로깅되므로 불필요한 로깅 출력을 줄이고 더 손쉽게 디버깅을 수행할 수 있습니다. 구체적으로 이 샘플에서는 SOAP 작업 요소를 기준으로 필터링하는 방법을 보여 줍니다.

참고

이 샘플에는 코드가 없습니다. 이 샘플에 제공된 구성을 사용자 응용 프로그램의 구성 파일에 추가하고 시나리오의 컨텍스트에서 메시지 로깅의 변경 사항을 관찰할 수 있습니다.

메시지 로깅의 필터링

XPath 필터를 사용하여 WCF(Windows Communication Foundation) 메시지 로깅을 사용자 지정할 수 있습니다. 필터를 통과하는 메시지만 로깅됩니다. 필터는 XPath 언어를 사용하여 정의되며 구성 파일의 <messageLogging> 요소에 추가할 수 있습니다.

필터는 로깅될 메시지가 충족시켜야 하는 조건의 목록입니다. 이 예제에서는 특정 SOAP 작업을 사용하여 메시지를 로깅하는 방법을 보여 줍니다.

작업 기준 필터링

서비스에서 해당 작업에 대해 사용자 지정 작업을 구성하지 않는 한 메시지가 반드시 끝점 또는 계약 참조를 포함할 필요는 없습니다.

사용자 지정 작업이 사용되지 않을 경우 각 메시지에 포함된 작업은 다음 형식을 갖습니다.

ContractNamespace/ContractName/OperationName

ContractNamespace는 http://를 포함합니다.

메시지에 SOAP 1.2 버전 봉투를 사용하는 경우 다음 구성에서와 같이 MyContractNamespace 네임스페이스를 갖는 MyContractName 계약에서 대상이 되는 메시지는 로깅하기 위해 필터링될 수 있습니다.

<messageLogging logMessagesAtTransportLevel="true" logMessagesAtServiceLevel="true" >
   <filters>
      <add xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">/soap:Envelope/soap:Header/a:Action[starts-with(text(),'MyContractNamespace/MyContractName')]</add>
   </filters>
</messageLogging>

다음은 Tracing and Message Logging 샘플의 Add 요청에 대해 네임스페이스 및 계약 이름을 지정하는 필터를 추가하는 예제입니다.

<filters>
   <add xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">/soap:Envelope/soap:Header/a:Action[starts-with(text(),'http://Microsoft.ServiceModel.Samples/ICalculator/Add')]</add>
</filters>

사용자 지정 작업이 사용되는 경우 다음 작업으로 메시지를 필터링할 때 메시지 로깅이 사용될 수 있습니다.

<add xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">/soap:Envelope/soap:Header/a:Action/text()="MyAction"</add>

SOAP 1.1 버전 봉투에서는 SOAP 네임스페이스를 https://schemas.xmlsoap.org/soap/envelope/로 바꿔야 합니다. 다른 주소 지정 버전에서도 비슷하게 변경해야 합니다.

HTTP 기본 프로필의 경우 헤더는 봉투의 일부가 아니며 HTTP 헤더로 보내집니다. 필터링 방법을 알맞게 수정해야 합니다.

메시지 로깅에 대한 자세한 내용은 Configuring Message Logging 항목을 참조하십시오.

샘플을 설치, 빌드 및 실행하려면

  1. 이 샘플을 실행하려면 앞서 소개한 구성 섹션 중 하나를 해당 응용 프로그램의 구성 파일에 추가합니다. 메시지 로깅 설정은 응용 프로그램 도메인 전체에서 유효하므로 로깅 필터는 응용 프로그램 도메인에 로깅된 모든 메시지에 적용됩니다.

  2. 응용 프로그램을 실행합니다. 필터 조건을 충족하는 메시지만 디스크에 로깅됩니다.

참고 항목

기타 리소스

Configuring Message Logging

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.