記錄和檢視 TraceLogging 事件
您可以使用許多工具來收集及解碼 TraceLogging ETW 事件。
- 若要控制追蹤會話,請使用 WPR、tracelog 或 traceview 等工具。
- 若要從會話解碼事件,請使用 WPA、tracefmt 或 traceview 等工具。
此範例示範如何使用 Windows Performance Recorder (WPR) 記錄 TraceLogging 事件,並使用 Windows 效能分析器 (WPA) 加以檢視。
必要條件
- Windows 10
- Windows 10版本的 Windows Performance Recorder (WPR) ,以及屬於 Windows® ADK) Windows ADK) Windows (效能分析器 (WPA) 的 windows Windows 10 版本。
重要
使用 TraceLogging 擷取的追蹤必須使用 windows Performance Recorder 的 Windows 10 版本進行擷取,並使用 Windows 效能分析器 的 Windows 10 版本進行檢視。 如果您無法擷取或解碼事件,請確認您使用工具的Windows 10版本。
1.使用 WPR 擷取追蹤資料
若要擷取Windows Phone上的追蹤,請參閱下方Windows Phone擷取 TraceLogging 事件。
建立 Windows Performance Recorder 設定檔 (.wprp) ,讓您可以使用 WPR 來擷取追蹤記錄事件。
建立 。WPRP 檔案
使用下列 WPRP 範例搭配 TraceLogging C/C++ 快速入門 中的原生程式碼範例,或 TraceLogging Managed 快速入門中的 Managed範例。 如果您要從自己的提供者記錄事件,請將
TODO
區段取代為您提供者的適當值。重要
如果您使用 TraceLogging C/C++ 快速入門,請在 專案的 屬性
<EventProvider>
中Name
指定提供者 GUID。 例如:<EventProvider Id="EventProvider_SimpleTraceLoggingProvider" Name="0205c616-cf97-5c11-9756-56a2cee02ca7" />
。 如果您使用 Managed TraceLogging 快速入門,請在 元素的 屬性中Name
指定 開頭*
的<EventProvider />
提供者名稱。 例如:<EventProvider Name="*SimpleTraceLoggingProvider" />
。範例 WPRP 檔案:
<?xml version="1.0" encoding="utf-8"?> <!-- TODO: 1. Find and replace "SimpleTraceLoggingProvider" with the name of your provider. 2. See TODO below to update GUID for your event provider --> <WindowsPerformanceRecorder Version="1.0" Author="Microsoft Corporation" Copyright="Microsoft Corporation" Company="Microsoft Corporation"> <Profiles> <EventCollector Id="EventCollector_SimpleTraceLoggingProvider" Name="SimpleTraceLoggingProvider"> <BufferSize Value="64" /> <Buffers Value="4" /> </EventCollector> <!-- TODO: 1. Update Name attribute in EventProvider xml element with your provider GUID, eg: Name="0205c616-cf97-5c11-9756-56a2cee02ca7". Or if you specify an EventSource C# provider or call TraceLoggingRegister(...) without a GUID, use star (*) before your provider name, eg: Name="*MyEventSourceProvider" which will enable your provider appropriately. 2. This sample lists one EventProvider xml element and references it in a Profile with EventProviderId xml element. For your component wprp, enable the required number of providers and fix the Profile xml element appropriately --> <EventProvider Id="EventProvider_SimpleTraceLoggingProvider" Name="*SimpleTraceLoggingProvider" /> <Profile Id="SimpleTraceLoggingProvider.Verbose.File" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" LoggingMode="File" DetailLevel="Verbose"> <Collectors> <EventCollectorId Value="EventCollector_SimpleTraceLoggingProvider"> <EventProviders> <!-- TODO: 1. Fix your EventProviderId with Value same as the Id attribute on EventProvider xml element above --> <EventProviderId Value="EventProvider_SimpleTraceLoggingProvider" /> </EventProviders> </EventCollectorId> </Collectors> </Profile> <Profile Id="SimpleTraceLoggingProvider.Light.File" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" Base="SimpleTraceLoggingProvider.Verbose.File" LoggingMode="File" DetailLevel="Light" /> <Profile Id="SimpleTraceLoggingProvider.Verbose.Memory" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" Base="SimpleTraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Verbose" /> <Profile Id="SimpleTraceLoggingProvider.Light.Memory" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" Base="SimpleTraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Light" /> </Profiles> </WindowsPerformanceRecorder>
使用 儲存檔案。WPRP 副檔名。
從提升許可權的 (以系統管理員身分) 命令提示字元視窗執行 WPR 來啟動擷取。
< wpr> 的路徑\wpr.exe -start GeneralProfile -start TraceLoggingProvider.wprp
提示
為了進行一般分析,您也可以將 -start GeneralProfile 新增至 wpr.exe 命令列,以擷取系統事件以及提供者的事件。 如果您只想收集事件,請省略 -start GeneralProfile。
執行包含事件的應用程式。
停止追蹤擷取。
< wpr> 的路徑\wpr.exe -stop TraceCaptureFile.etl description
提示
如果您已新增 -start GeneralProfile 以收集系統事件,請將 -stop GeneralProfile 新增至上述 wpr.exe 命令列。
2.擷取Windows Phone上的 TraceLogging 事件
啟動追蹤記錄,以從您的提供者擷取事件。
cmdd tracelog -start test -f c:\test.etl -guid #providerguid
執行測試案例以記錄事件。
停止追蹤擷取。
cmdd tracelog -stop test
將系統追蹤結果與您的追蹤結果合併。
cmdd xperf -merge c:\test.etl c:\testmerged.etl
擷取合併的記錄檔。
getd c:\testmerged.etl
3.使用 Windows 效能分析器檢視 TraceLogging 資料
WPA 目前是唯一可用來檢視 TraceLogging 追蹤 (.etl) 檔案的檢視器。
啟動 WPA。
<wpr >\wpa.exe traceLoggingResults.etl 的路徑
載入您在上述wpa.exe命令中指定的追蹤 (.etl) 檔案,例如 traceLoggingResults.etl。
檢視您的提供者事件。 在 [WPA Graph 總管] 中,展開 [系統活動]。
按兩下 [ 一般事件] 窗格,以檢視 [分析 ] 窗格中的事件。
在 [分析] 窗格中,找出提供者的事件,以確認 TraceLogging 是否正常運作。
在[泛型事件]資料表的 [提供者名稱] 資料行中,尋找並選取具有提供者名稱的資料列。
如果您有多個提供者可排序,請按一下資料行標頭來排序資料行名稱,這可讓您更輕鬆地找到您的提供者。
當您找到您的提供者時,以滑鼠右鍵按一下名稱,然後選取 [ 篩選至選取範圍]。
SimpleTraceLoggingProvider 及其值的事件會出現在 [分析] 視窗的底部窗格中。 展開提供者名稱以查看事件。
如需使用 WPA 的詳細資訊,請參閱Windows 效能分析器。
摘要和後續步驟
使用 WPR 和 WPA 錄製和檢視 ETW 事件的程式同樣適用于 TraceLogging 事件。
如需其他 TraceLogging 範例,請參閱 C/C++ 追蹤 記錄範例。