ETW トレース

Download sample

このサンプルでは、Event Tracing for Windows (ETW) と、このサンプルに用意されている ETWTraceListener を使用して、エンドツーエンド (E2E) のトレースを実装する方法を示します。このサンプルは「入門サンプル」に基づいており、ETW トレースが含まれています。

Noteメモ :

このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。

このサンプルでは、「トレースとメッセージ ログ」に精通し、「トレースとメッセージ ログ」で取り上げられているドキュメントを読んでいることを前提にしています。

System.Diagnostics トレース モデル内の各トレース ソースでは、データのトレース場所とトレース方法を決定するトレース リスナを複数設定できます。リスナの種類では、トレース データの記録形式が定義されます。リスナを構成に追加する方法を、次のコード サンプルに示します。

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" 
             switchValue="Verbose,ActivityTracing"
             propagateActivity="true">
            <listeners>
                <add type=
                   "System.Diagnostics.DefaultTraceListener"
                   name="Default">
                   <filter type="" />
                </add>
                <add name="ETW">
                    <filter type="" />
                </add>
            </listeners>
        </source>
    </sources>
    <sharedListeners>
        <add type=
            "Microsoft.ServiceModel.Samples.EtwTraceListener, ETWTraceListener"
            name="ETW" traceOutputOptions="Timestamp">
            <filter type="" />
       </add>
    </sharedListeners>
</system.diagnostics>

このリスナを使用する前に、ETW トレース セッションを開始する必要があります。このセッションは、Logman.exe または Tracelog.exe を使用して開始できます。このサンプルには、ETW トレース セッションをセットアップするための SetupETW.bat ファイルと、セッションを閉じてログ ファイルを完了するための CleanupETW.bat ファイルが含まれています。

Noteメモ :

このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。これらのツールの詳細については、「https://go.microsoft.com/fwlink/?LinkId=56580」を参照してください。

ETWTraceListener を使用する場合、トレースはバイナリの .etl ファイルにログ記録されます。ServiceModel トレースが有効な場合、生成されるすべてのトレースは同じファイルに表示されます。.etl および .svclog ログ ファイルを表示するには、Service Trace Viewer Toolを使用します。このビューアでは、メッセージを送信側から受信側や使用地点までトレースできる、システムのエンドツーエンドのビューが作成されます。

ETW トレース リスナは、循環ログをサポートします。この機能を有効にするには、[スタート] メニューの [ファイル名を指定して実行] をクリックし、「cmd」と入力してコマンド コンソールを起動します。次のコマンドでは、<logfilename> パラメータを使用するログ ファイル名に置き換えます。

logman create trace Wcf -o <logfilename> -p "{411a0819-c24b-428c-83e2-26b41091702e}" -f bincirc -max 1000

-f スイッチと -max スイッチは省略できます。これらのスイッチでは、それぞれバイナリの循環形式と 1000 MB の最大ログ サイズが指定されます。-p スイッチは、トレース プロバイダを指定する際に使用します。この例では、"{411a0819-c24b-428c-83e2-26b41091702e}" は "XML ETW サンプル プロバイダ" の GUID です。

ログ記録を完了したら、次のコマンドを使用してセッションを停止できます。

Logman stop Wcf

この処理によってバイナリの循環ログが生成されます。このログは、Service Trace Viewer Toolや Tracerpt など、ユーザーが選択したツールを使用して処理できます。

また、循環ログ記録を実行する代替リスナの詳細については、「循環トレース」でも確認できます。

サンプルを設定、ビルド、および実行するには

  1. Windows Communication Foundation サンプルの 1 回限りのセットアップの手順」が実行済みであることを確認します。

  2. ソリューションをビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。

  3. サンプルを実行する前に、クライアントとサーバーで RegisterProvider.bat を実行します。この結果、トレースを生成する ETWTracingSampleLog.etl ファイルがセットアップされます。このトレースはサービス トレース ビューアで読み取ることができます。このファイルは、C:\logs フォルダにあります。このフォルダが存在しない場合はフォルダを作成する必要があります。作成しない場合、トレースは生成されません。次に、クライアント コンピュータとサーバー コンピュータで SetupETW.bat を実行し、ETW トレース セッションを開始します。SetupETW.bat ファイルは、CS\Client フォルダの下にあります。

  4. サンプルを単一コンピュータ構成または複数コンピュータ構成で実行するには、「Windows Communication Foundation サンプルの実行」の手順に従います。

  5. サンプルの使用が終わったら、CleanupETW.bat を実行して ETWTracingSampleLog.etl ファイルの作成を完了します。

  6. サービス トレース ビューア内で ETWTracingSampleLog.etl ファイルを開きます。このバイナリ形式のファイルを .svclog ファイルとして保存するかどうかを尋ねるメッセージが表示されます。

  7. 新しく作成された .svclog ファイルをサービス トレース ビューア内で開き、ETW トレースと ServiceModel トレースを表示します。

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.