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 LevelTrace的记录会带来一些性能上的影响,你需要认真考虑如何设置TraceLevel,从而达到Trace记录与 产品性能上的平衡。通常情况下,如果只是想监控错误消息,选择TraceLevel=1或2即可。 当你需要更多的LOG信息以便于 调试观察时,你可以将TraceLevel=3或4,请记住,这时候产生的LOG是非常详细的,与其对应的LOG文件 也会很大 - 这会给程序的性能带来不小的影响。通常情况下,我们只会在调试错误以及开发过程中使用 此TraceLevel。详细信息请查看下表:
Switch value | Tracing level | Output |
0 | off | No messages to trace listeners. |
1 | error | Only error messages to trace listeners. |
2 | warning | Error and warning messages to trace listeners. |
3 | info | Informational, warning, and error messages to trace listeners. |
4 | verbose | All messages to trace listeners. |