共用方式為


追蹤 Sync Framework 元件

Sync Framework 可讓您追蹤許多元件的執行作業,這在應用程式偵錯期間很有用。對於大部分 Sync Framework 元件而言,追蹤是使用 Windows 事件追蹤 (ETW) 基礎結構在機器碼層級執行。如需 ETW 基礎結構的詳細資訊,請參閱事件追蹤

即使您是針對 Managed 版本的 API 開發,仍然可以使用 ETW,因為 Managed API 是原生 API 上方的薄型包裝函式。Sync Framework 資料庫提供者會提供以 .NET Framework 實作為基礎的 Managed 追蹤。如需詳細資訊,請參閱 HOW TO:追蹤同步處理程序

下載和使用追蹤工具

ETW 所需的追蹤工具包含在 Windows 支援工具中,而且每個 Windows 版本都有提供這些工具。例如,您可以從這個 Microsoft 下載中心頁面取得適用於 Windows XP SP2 的工具。下表將描述與 Sync Framework 追蹤有關的工具:

追蹤工具 描述 語法參考

Tracelog.exe

啟動、停止或啟用追蹤記錄。

Tracelog 命令語法

Tracefmt.exe

根據事件追蹤記錄檔 (.etl) 或即時追蹤工作階段,格式化並顯示追蹤訊息。

Tracefmt

若要檢視追蹤的輸出,您可以啟動追蹤記錄、啟用追蹤,然後格式化追蹤以便檢視。

若要啟動追蹤記錄器

若要啟動追蹤記錄器,請指定記錄器名稱、追蹤檔案名稱,以及一些控制如何寫入檔案的參數:tracelog.exe -start <LoggerName> <LoggerParameters> -f <PathToEtlFile>。例如,您可以使用下列命令:

tracelog.exe -start "Sync" -paged -b 32 -max 100 -cir 20 -ls -f %TEMP%\SyncFramework.etl

若要啟用追蹤

若要啟用追蹤,請指定要追蹤之元件的 GUID、指出要追蹤哪些子元件之旗標的位元遮罩,以及代表追蹤層級的整數:tracelog.exe - enable <LoggerName> -guid <ComponentTracingId> -flags <Flags> -level <Level>。在此範例中,我們使用追蹤層級 4 (包括非錯誤案例的參考用訊息),針對 Sync Framework 核心元件及其所有子元件啟用追蹤:

tracelog.exe -enable "Sync" -guid #5978339c-8ab2-467e-bb85-8832659d5ed0 -flags 0xffff -level 4

如需 Sync Framework 的完整選項清單,請參閱本主題的 Sync Framework 追蹤參考。

若要格式化並檢視追蹤檔案

若要檢視追蹤,請排清記錄器,並且使用來自 Microsoft 下載中心適用於 Sync Framework 的 .tmf 檔案來格式化二進位追蹤檔案。您可以使用類似下面的命令來檢視 "Sync" 記錄器的追蹤結果:

  1. 若要排清記錄器,請執行 tracelog.exe -flush "Sync"

  2. 從 Sync Framework 安裝路徑 (Program Files\Microsoft SDKs\Microsoft Sync Framework\v2.0) 將 .tmf 檔案複製到工作複錄,例如 %TEMP%\TMF

  3. 若要格式化此檔案,請執行 tracefmt.exe %TEMP%\SyncFramework.etl -p %TEMP%\TMF -o %TEMP%\SyncFrameworkTrace.txt

  4. 若要檢視此檔案,請開啟 %TEMP%\SyncFrameworkTrace.txt

若要停止追蹤

若要停止先前啟動的 "Sync" 記錄器,請執行 tracelog.exe -stop "Sync"

Sync Framework 追蹤參考

下表將顯示代表每個 Sync Framework 元件的 GUID:

元件 元件追蹤識別碼

核心架構和執行階段

5978339c-8ab2-467e-bb85-8832659d5ed0

簡單提供者

69c896b3-e183-428d-9e30-4b519b156828

Web 同步處理元件

0958c02f-01cb-4b28-badf-1431c83a931e

中繼資料儲存服務

67161b7f-60ff-4368-832e-670f2327a7e4

檔案同步處理提供者

b5fac8e8-25e0-4468-926e-54cd8514f8a0

追蹤旗標

下表將顯示一些位元遮罩旗標,而且您可以將這些旗標傳遞給 tracelog.exe 的 -flags 參數,以便指定應該追蹤的子元件:

核心架構和執行階段旗標

追蹤旗標名稱 位元遮罩 描述

TRACE_MSG_KNOWLEDGE

0x0001

同步處理知識作業

TRACE_MSG_SYNC_SERVICES

0x0002

同步處理服務,例如應用程式同步處理服務和提供者同步處理服務

TRACE_MSG_SYNC_SESSION

0x0004

同步處理工作階段和同步處理工作階段狀態

TRACE_MSG_CHANGE_APPLIER

0x0008

通知變更套用者

TRACE_MSG_CHANGE_BATCH

0x0010

變更批次

TRACE_MSG_CHANGE

0x0020

個別變更

TRACE_MSG_FILTER

0x0040

變更篩選

TRACE_MSG_IN_MEMORY_CONFLICT_LOG

0x0080

記憶體中的衝突記錄檔

TRACE_MSG_CHANGE_APPLICATION_SERVICES

0x0100

進階變更套用服務

簡單提供者旗標

追蹤旗標名稱 位元遮罩 描述

TRACE_MSG_SIMPLESYNCWRAPPER

0x0001

簡單提供者 (沒有定義任何子元件)

Web 同步處理元件旗標

追蹤旗標名稱 位元遮罩 描述

TRACE_MSG_FEEDSYNC

0x0001

Web 同步處理元件 (沒有定義任何子元件)

中繼資料儲存服務旗標

追蹤旗標名稱 位元遮罩 描述

TRACE_MSG_METADATA_STORE

0x0001

中繼資料儲存服務 (沒有定義任何子元件)

檔案同步處理提供者旗標

追蹤旗標名稱 位元遮罩 描述

TRACE_MSG_FSP

0x0001

檔案同步處理提供者 (沒有定義任何子元件)

追蹤層級

下表將顯示 Sync Framework 所使用的追蹤層級。提高層級就代表提高記錄詳細等級,而且這些層級都是累計的。例如,層級 4 追蹤包含層級 1-3 的所有資訊以及其他資訊:

追蹤層級 說明

TRACE_LEVEL_NONE

0

沒有追蹤

TRACE_LEVEL_CRITICAL

1

異常結束或終止

TRACE_LEVEL_ERROR

2

嚴重錯誤

TRACE_LEVEL_WARNING

3

可能會顯示問題的警告

TRACE_LEVEL_INFORMATION

4

包括非錯誤案例的資訊

TRACE_LEVEL_METADATA_INFORMATION

5

同步處理中繼資料的相關資訊

TRACE_LEVEL_FUNCTION

6

每個函式何時進入和結束的相關資訊

請參閱

概念

疑難排解 Sync Framework