次の方法で共有


ETW トレース

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

ms751538.note(ja-jp,VS.100).gif注 :
このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。

このサンプルは、「トレースとメッセージ ログ」について理解していることを前提としています。

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 ファイルが含まれています。

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

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

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 start Wcf

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

Logman stop Wcf

この処理によってバイナリの循環ログが生成されます。このログは、サービス トレース ビューアー ツール (SvcTraceViewer.exe)や Tracerpt など、ユーザーが選択したツールを使用して処理できます。

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

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

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

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

    ms751538.note(ja-jp,VS.100).gif注 :
    RegisterProvider.bat、SetupETW.bat、および CleanupETW.bat コマンドを使用するには、ローカル管理者アカウントで実行する必要があります。Windows Vista 以降を使用している場合は、コマンド プロンプトも管理者権限で実行する必要があります。これを行うには、コマンド プロンプトのアイコンを右クリックし、[管理者として実行] をクリックします。

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

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

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

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

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

ms751538.Important(ja-jp,VS.100).gif 注 :
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Management\AnalyticTrace

参照

その他のリソース

AppFabric の監視のサンプル