熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ADO.NET 使用Tracing生成LOG

2013-11-13 09:57:14  來源: .NET編程 

  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的變化從而深入的了解


From:http://tw.wingwit.com/Article/program/net/201311/12100.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.