ETW 追蹤
AnalyticTrace 範例示範如何使用 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 啟動這個工作階段。 此範例隨附可供您設定 ETW 追蹤工作階段的 SetupETW.bat 檔案,以及可用來關閉工作階段與完成記錄檔的 CleanupETW.bat 檔案。
注意
此範例的安裝程序與建置指示位於本主題的結尾。 如需這些工具的詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=56580
使用 ETWTraceListener 時,追蹤會記錄在二進位的 .etl 檔案中。 開啟 ServiceModel 追蹤之後,所有產生的追蹤都會出現在同一個檔案中。 服務追蹤檢視器工具 (SvcTraceViewer.exe)可用於檢視 .etl 和 .svclog 記錄檔。 此檢視器會建立系統的端對端檢視,讓您能夠從訊息的來源至其目的端及消費點追蹤該訊息。
ETW 追蹤接聽項支援循環記錄。 若要啟用這項功能,請前往 [開始]、[執行],然後鍵入 cmd
以啟動命令主控台。 以記錄檔名稱取代下列命令中的 <logfilename>
參數。
logman create trace Wcf -o <logfilename> -p "{411a0819-c24b-428c-83e2-26b41091702e}" -f bincirc -max 1000
-f
和 -max
參數是選擇項, 可以分別指定二進位循環格式以及最多 1000MB 的記錄檔大小上限。 -p
參數會用來指定追蹤提供者。 在範例中,"{411a0819-c24b-428c-83e2-26b41091702e}"
即是「XML ETW 範例提供者」的 GUID。
若要啟動工作階段,請輸入下列命令。
logman start Wcf
完成記錄之後,您可以使用下列命令停止工作階段。
logman stop Wcf
這個程序會產生二進位循環記錄,您可以使用選擇的工具 (包括服務追蹤檢視器工具 (SvcTraceViewer.exe) 或 Tracerpt) 進行處理。
您也可以檢閱循環追蹤範例,取得其他可執行循環記錄之接聽項的詳細資訊。
若要安裝、建置及執行範例
若要建置方案,請遵循建置 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 追蹤。