Microsoft Sync Framework (MSF) 核心組件 Sync Services for ADO.NET 內建追蹤機制,記錄同步作業 (資料、中繼資料) 細節,透過 TraceListener 輸出至檔案或自訂目標,是分散式同步場景 (伺服器 + 數十~數千 Client) 偵錯不可或缺的工具。
<configuration>
<system.diagnostics>
<switches>
<!-- 0=關閉, 1=錯誤, 2=警告, 3=資訊, 4=詳細 -->
<add name="SyncTracer" value="3" />
</switches>
<trace autoflush="true">
<listeners>
<add name="TestListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\TraceSample.txt" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
| Value | Level | 輸出內容 | 適用場景 |
|---|---|---|---|
| 0 | Off | 無 | 生產環境 |
| 1 | Error | 錯誤 | 生產監控 |
| 2 | Warning | 錯誤+警告 | 生產監控 |
| 3 | Info | 資訊+警告+錯誤 | 開發/測試偵錯 |
| 4 | Verbose | 所有訊息 | 深度偵錯 (日誌極大、影響效能) |
建議: 開發階段用 3 或 4,正式環境降為 1 或 2。
INFO, MyApp.vshost, 10, 03/20/2008 17:43:03:027, Connecting to server using string: Data Source=localhost;Initial Catalog=SyncSamplesDb;Integrated Security=True
INFO, MyApp.vshost, 10, 03/20/2008 17:43:03:027, ----- Server Enumerating Changes to Client for Group "Customer" -----
INFO, MyApp.vshost, 10, 03/20/2008 17:43:03:027, Client Id: bc5610f6-bf9c-4ccd-8599-839e54e953e2
INFO, MyApp.vshost, 10, 03/20/2008 17:43:03:027, Mapped Originator Id: 0
INFO, MyApp.vshost, 10, 03/20/2008 17:43:03:042, ----- Enumerating Inserts for Table Customer -----
INFO, MyApp.vshost, 10, 03/20/2008 17:43:03:058, Changes Enumerated: 5
INFO, MyApp.vshost, 10, 03/20/2008 17:43:03:058, --- End Enumerating Inserts for Table Customer ---
日誌清晰記錄:連線字串、同步群組、客戶端 ID、變更枚舉階段與筆數,極大降低分散式同步問題排查難度。
觀察日誌流程可快速理解同步協定:錨點建立 → 變更枚舉 → 衝突偵測 → 應用變更,加速上手 Sync Services for ADO.NET。