跟踪 Sync Framework 组件
Sync Framework 允许您跟踪几个组件的执行情况,这在应用程序调试期间很有用。对于大多数 Sync Framework 组件,通过使用 Windows 事件跟踪 (ETW) 基础结构在本机代码级别执行跟踪。有关该 ETW 基础结构的更多信息,请参见事件跟踪。
即使您针对 API 的托管版本进行开发,仍要使用 ETW,因为托管 API 是本机 API 上的瘦包装。Sync Framework 数据库提供程序提供基于 .NET Framework 实现的托管跟踪功能。有关更多信息,请参见如何跟踪同步过程。
下载和使用跟踪工具
ETW 需要的跟踪工具包括在 Windows 支持工具中,这些工具在每个 Windows 版本中都提供。例如,用于 Windows XP SP2 的这些工具可以在 Microsoft 下载中心页找到。下表描述了与 Sync Framework 跟踪有关的工具:
跟踪工具 | 说明 | 语法参考 |
---|---|---|
Tracelog.exe |
启动、停止或启用跟踪日志记录。 |
|
Tracefmt.exe |
格式化并显示来自事件跟踪日志文件 (.etl) 或实时跟踪会话的跟踪消息。 |
为了查看跟踪的输出,可以启动一个跟踪日志,启用跟踪,然后将跟踪信息格式化以便查看。
启动跟踪记录器
若要启动跟踪记录器,请指定一个记录器名称、一个跟踪文件名和控制如何写入文件的几个参数: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>
。在本示例中,我们启用 Sync Framework 核心组件及其所有子组件的跟踪,跟踪级别为 4(包括非错误情形的信息性消息):
tracelog.exe -enable "Sync" -guid #5978339c-8ab2-467e-bb85-8832659d5ed0 -flags 0xffff -level 4
有关 Sync Framework 选项的完整列表,请参见本主题中的 Sync Framework 跟踪参考。
格式化和查看跟踪文件
若要查看跟踪,请刷新记录器,并使用从 Microsoft 下载中心下载的可用于 Sync Framework 的 .tmf 文件格式化二进制跟踪文件。使用与以下命令相似的命令来查看“Sync”记录器的跟踪信息:
若要刷新记录器,请执行
tracelog.exe -flush "Sync"
。将 .tmf 文件从 Sync Framework 安装路径 (Program Files\Microsoft SDKs\Microsoft Sync Framework\v2.0) 复制到工作目录(如
%TEMP%\TMF
)。若要格式化该文件,请执行
tracefmt.exe %TEMP%\SyncFramework.etl -p %TEMP%\TMF -o %TEMP%\SyncFrameworkTrace.txt
。若要查看该文件,请打开
%TEMP%\SyncFrameworkTrace.txt
。
停止跟踪
若要停止我们早先启动的“Sync”记录器,请执行 tracelog.exe -stop "Sync"
。
Sync Framework 跟踪参考
下表显示表示每个 Sync Framework 组件的 GUID:
组件 | 组件跟踪 ID |
---|---|
核心框架和运行时 |
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 |
有关进入和退出每个函数时的信息 |