当前位置: 首页 > 图文教程 > .Net技术 > ADO.NET > ADO.NET 使用Tracing生成LOG

ADO.NET
ADO.net连接数据库步骤及分析
我对ADO.NET的一点点理解
ADO.NET连接数据库
ADO.NET连接池FAQ
关于ADO.Net连接池(Connection Pool)的一些个人见解
ado.net事务的使用
ADO.NET非连接类(一)关于DataTable、DataColumn和DataRow对象的创建
最佳实践 ADO.NET实用经验无保留曝光
ado.net中的自动获取存储过程参数
ado知识遗补
ADO.Net读取Excel中的数据
Java 实现 ADO.NET DataTable
Remoting笔记:错误:“由于安全限制,无法访问类型System.RunTime.Remoting.ObjRef”
ADO.NET与抽水的故事 系列六:水池子:DataTable
趣味理解ADO.NET对象模型
浅谈ADO.NET中的五个主要对象
ADO.NET 和 ADO 的比较
ADO.NET 概述
ADO.net与PowerBuilder
ADO.NET 如何读取 Excel

ADO.NET 中的 ADO.NET 使用Tracing生成LOG


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 195 ::
收藏到网摘: n/a

网上查了许多相关的资料,今天整理一下文章,发布到软晨学习网网站上,希望对大家有所帮助。
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 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.
 


开始一个实例,验证Traceing是否能正常工作
按照上面的我介绍的方法,将TraceLevel=3,运行程序后,LOG文件被被产生,

其格式如下:

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,

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 ---

怎么样,整个同步的过程是不是清晰明了呢,作为初学者,我们可可以通过观察LOG的变化,从而深入的了解,如果有什么不明白或不懂的地方,可以到孙鑫老师的论坛上发帖求助,大家一起讨论。