AnalyticTrace サンプルでは、Event Tracing for Windows (ETW) と、このサンプルで提供されているETWTraceListener
を使用してエンドツーエンド (E2E) トレースを実装する方法を示します。 このサンプルは、はじめにに基づいており、ETW トレースが含まれています。
注
このサンプルのセットアップ手順とビルド手順は、このトピックの最後にあります。
このサンプルでは、 トレースとメッセージ のログ記録について理解していることを前提としています。
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を使用して開始できます。 このサンプルには SetupETW.bat ファイルが含まれているため、セッションを閉じてログ ファイルを完了するための CleanupETW.bat ファイルと共に ETW トレース セッションを設定できます。
注
このサンプルのセットアップ手順とビルド手順は、このトピックの最後にあります。 これらのツールの詳細については、 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 など、任意のツールで処理できるバイナリ循環ログが生成されます。
循環ログを実行する代替リスナーの詳細については、 循環トレース のサンプルを参照することもできます。
サンプルを設定、ビルド、実行するには
Windows Communication Foundation サンプルのOne-Time セットアップ手順を実行していることを確認します。
ソリューションをビルドするには、「 Windows Communication Foundation サンプルのビルド」の手順に従います。
注
RegisterProvider.bat、SetupETW.bat、および CleanupETW.bat コマンドを使用するには、ローカル管理者アカウントで実行する必要があります。 Windows Vista 以降を使用している場合は、管理者特権でコマンド プロンプトも実行する必要があります。 これを行うには、コマンド プロンプト アイコンを右クリックし、[ 管理者として実行] をクリックします。
サンプルを実行する前に、クライアントとサーバーで RegisterProvider.bat を実行します。 これにより、結果の ETWTracingSampleLog.etl ファイルが設定され、サービス トレース ビューアーで読み取ることができるトレースが生成されます。 このファイルは C:\logs フォルダーにあります。 このフォルダーが存在しない場合は、作成する必要があります。そうしないと、トレースは生成されません。 次に、クライアント コンピューターとサーバー コンピューターで SetupETW.bat を実行して、ETW トレース セッションを開始します。 SetupETW.bat ファイルは CS\Client フォルダーにあります。
シングル コンピューター構成またはクロスコンピューター構成でサンプルを実行するには、「 Windows Communication Foundation サンプルの実行」の手順に従います。
サンプルが完了したら、CleanupETW.bat 実行して ETWTracingSampleLog.etl ファイルの作成を完了します。
サービス トレース ビューアー内から ETWTracingSampleLog.etl ファイルを開きます。 バイナリ形式のファイルを .svclog ファイルとして保存するように求められます。
サービス トレース ビューアー内から新しく作成された .svclog ファイルを開き、ETW トレースと ServiceModel トレースを表示します。