다음을 통해 공유


Windows 이벤트 로그 서비스를 통해 WPP 추적을 사용하도록 설정하는 방법

Windows 이벤트 로그 서비스는 WPP 로깅 및 디코딩을 지원합니다. 이 항목에서는 Windows 이벤트 로그 서비스를 통해 WPP 추적을 사용하도록 설정하는 방법을 설명합니다.

이 시나리오에서 WPP 추적을 사용하도록 설정하려면 WPP 공급자에게 추가 작업이 필요하지 않습니다. 그러나 Windows 이벤트 로그 서비스를 사용하려면 매니페스트와 이벤트 로그 공급자를 제공해야 합니다. WPP 추적을 사용하도록 설정하려면 디버그 채널을 선언하고 WPP 공급자에 대해 선언된 대로 연결된 컨트롤 GUID를 지정합니다.

예시:

<instrumentationManifest
    xmlns="http://schemas.microsoft.com/win/2004/08/events"
    xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema"  xsi:schemaLocation="http://schemas.microsoft.com/win/2004/08/events eventman.xsd"  
    >
   <instrumentation>
        <events>
            <provider name="Microsoft-Windows-mySampleProvider"
                guid="{61CE3EC9-E5E8-4b96-A451-74631A6E0D5C}"
                >
          <channel
        chid="MS_WINDOWS_GE_DEBUG"
        enabled="false"
        isolation="System"
        message="$(string.Microsoft-Windows-GenerateEvent.channel.CHANNEL_DEBUG.message)"
        name="Microsoft-Windows-GenerateEvent/Debug"
        symbol="CHANNEL_DEBUG"
        type="Debug"
        >
        <publishing>
          <level>2</level>
          <keywords>0xFFFFFFFF</keywords>
          <controlGuid>{d58c126f-b309-11d1-969e-0000f875a5bc}</controlGuid>
        </publishing>
        </channel>
       </provider>
    </events>
   </instrumentation>
</instrumentationManifest>

WPP 추적은 항상 사용하도록 설정되지 않으므로 기본적으로 매니페스트의 enable 특성을 false로 설정해야 합니다. WPP 추적이 필요한 경우 매니페스트의 특성을 변경하여 enabled="true"로 설정합니다.

컨트롤 비트를 지정하거나 개별적으로 선택할 수 없습니다. 이 채널에 모든 WPP 이벤트를 사용하도록 설정하려면 0XFFFFFFFF 키워드 값을 지정합니다. 내부적으로 컨트롤 비트는 키워드에 매핑됩니다. 특정 키워드에 매핑되는 비트를 알고 있는 경우 해당 키워드를 선택하여 특정 이벤트 집합을 가져올 수 있습니다. 예제 매니페스트에서 키워드 값은 16개 미만의 WPP 컨트롤 비트가 필요하기 때문에 0xFFFF. 설치 후 특정 이벤트 집합을 얻으려면 wevtutil.exe 명령줄 유틸리티를 사용하여 키워드를 변경할 수 있습니다. 명령은 다음과 같습니다.

컨트롤 비트에 해당하는 wevtutil sl <채널 이름>/k:<keyword 값>

키워드 값을 변경하려면 먼저 채널을 사용하지 않도록 설정해야 합니다.

이러한 방식으로 채널을 선언하면 WPP 공급자(컨트롤 GUID가 지정됨)와 이벤트 로그 공급자(이 채널이 선언됨)가 모두 디버그 채널에 액세스할 수 있으므로 두 공급자 모두 이 채널에 쓸 수 있습니다. 이제 이벤트 뷰어를 통해 이 채널에서 WPP 이벤트 또는 일반 ETW 이벤트를 볼 수 있습니다.

WPP 이벤트는 디코딩되지 않습니다. 이러한 이벤트와 연결된 메시지 문자열을 얻으려면 TMF 파일을 %windir%\System32\winevt\TraceFormat 디렉터리에 배치합니다. 입력을 위해 PDB 파일을 사용하고 TMF 파일을 반환하는 Tracepdb.exe 같은 유틸리티를 사용하여 TMF 파일을 가져올 수 있습니다.