Welcome

首页 / 软件开发 / .NET编程技术 / Sync Service for ADO.NET程序调试(一)

Sync Service for ADO.NET程序调试(一)2011-10-15 博客园 梁一鸣使用Tracing生成LOG(数据同步日志) [DESKTOP篇]

Sync Service for ADO.NET 是微软MSF(Microsoft Sync Framework)中的一个重要组成部分,它的提 供了一套完整的开发框架,应对与各种场景的离线数据同步。我们可以用其开发一些复杂的场景,用以适 应复杂的企业逻辑。比如在一份分布式场景中:我们创建一个Server,然后使用几十或上千台PC、 Notebook以及WM Device(手机PDA移动设备)作为Client段,使用Sync Service for ADO.NET 进行数据 同步。

对于这个复杂的分布式同步场景,如何进行调试与纠错呢?这时候需要用到 Tracing in Sync Services。

什么是Tracing in Sync Services?

Tracing 记录了程序的各种操作,包括同步数据和Metadata,然后将这些信息给了 Listener。作为 Listener,可以把这些信息记录到一个文件中作为LOG日志,或者根据你的要求传送的其他地方。在一个 分布式的程序中,Tracing是相当重要的,因为你需要用到它调试程序的错误,找到问题发生的根源。否 则,查找问题发生的根源是非常困难的。

如何开始开启Tracing in Sync Services

在缺省的情况下,Tracing是关闭的。 我们可以通过配置 Trace Listener,来开启Tracing。

我们可以通过编辑 app.config来开启Tracing,请加入以下的代码:

<configuration>
<system.diagnostics>
<switches>
<!-- 0-off, 1-error, 2-warn, 3-info, 4-verbose. -->
<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>

如何选择合适的Trace Level

Trace的记录会带来一些性能上的影响,你需要认真考虑如何设置TraceLevel,从而达到Trace记录与 产品性能上的平衡。

通常情况下,如果只是想监控错误消息,选择TraceLevel=1或2即可。 当你需要更多的LOG信息以便于 调试观察时,你可以将TraceLevel=3或4,请记住,这时候产生的LOG是非常详细的,与其对应的LOG文件 也会很大 - 这会给程序的性能带来不小的影响。通常情况下,我们只会在调试错误以及开发过程中使用 此TraceLevel。

详细信息请查看下表:

Switch valueTracing levelOutput
0offNo messages to trace listeners.
1errorOnly error messages to trace listeners.
2warningError and warning messages to trace listeners.
3infoInformational, warning, and error messages to trace listeners.
4verboseAll messages to trace listeners.