c#

位置:IT落伍者 >> c# >> 浏览文章

ADO.NET 使用Tracing生成LOG


发布日期:2019年07月02日
 
ADO.NET 使用Tracing生成LOG

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

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

什么是Tracing in Sync Services?

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

如何开始开启Tracing in Sync Services

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

我们可以通过编辑 nfig来开启Tracing请加入以下的代码

<configuration>

<systemdiagnostics>

<switches>

<! off error warn info verbose >

<add name=SyncTracer value= />

</switches>

<trace autoflush=true>

<listeners>

<add name=TestListener type=SystemDiagnosticsTextWriterTraceListener initializeData=c:\TraceSampletxt/>

</listeners>

</trace>

</systemdiagnostics>

</configuration>

如何选择合适的Trace Level

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

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

详细信息请查看下表

Switch value

Tracing level

Output

off

No messages to trace listeners

error

Only error messages to trace listeners

warning

Error and warning messages to trace listeners

info

Informational warning and error messages to trace listeners

verbose

All messages to trace listeners

开始一个实例验证Traceing是否能正常工作

按照上面的我介绍的方法将TraceLevel=运行程序后LOG文件被被产生

其格式如下

INFO MyAppvshost // ::: Connecting to server using string: Data Source=localhost;Initial Catalog=SyncSamplesDb;Integrated Security=True

INFO MyAppvshost // ::: Server Enumerating Changes to Client for Group Customer

INFO MyAppvshost // ::: Client Id: bcfbfcccdeee

INFO MyAppvshost // ::: Mapped Originator Id:

INFO MyAppvshost // :::

INFO MyAppvshost // ::: Enumerating Inserts for Table Customer

INFO MyAppvshost // ::: Changes Enumerated:

INFO MyAppvshost // ::: End Enumerating Inserts for Table Customer

怎么样整个同步的过程是不是清晰明了呢作为初学者我们可可以通过观察LOG的变化从而深入的了解

上一篇:C#中字节、字符、字符串的区别

下一篇:C#编码标准--编码习惯