揭開(kāi)ADO.NET TracinginSyncServices使用之謎
ADO.NET還是比較常用的,于是我研究了一下ADO.NET TracinginSyncServices,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。SyncServiceforADO.NET是微軟MSF(MicrosoftSyncFramework)中的一個(gè)重要組成部分,它的提供了一套完整的開(kāi)發(fā)框架,應(yīng)對(duì)與各種場(chǎng)景的離線數(shù)據(jù)同步。我們可以用其開(kāi)發(fā)一些復(fù)雜的場(chǎng)景,用以適應(yīng)復(fù)雜的企業(yè)邏輯。比如在一份分布式場(chǎng)景中:我們創(chuàng)建一個(gè)Server,然后使用幾十或上千臺(tái)PC、Notebook以及WMDevice(手機(jī)PDA移動(dòng)設(shè)備)作為Client段,使用SyncServiceforADO.NET進(jìn)行數(shù)據(jù)同步。
#T#對(duì)于這個(gè)復(fù)雜的分布式同步場(chǎng)景,如何進(jìn)行調(diào)試與糾錯(cuò)呢?這時(shí)候需要用到ADO.NET TracinginSyncServices。
什么是ADO.NET TracinginSyncServices?
Tracing記錄了程序的各種操作,包括同步數(shù)據(jù)和Metadata,然后將這些信息給了Listener。作為L(zhǎng)istener,可以把這些信息記錄到一個(gè)文件中作為L(zhǎng)OG日志,或者根據(jù)你的要求傳送的其他地方。在一個(gè)分布式的程序中,Tracing是相當(dāng)重要的,因?yàn)槟阈枰玫剿{(diào)試程序的錯(cuò)誤,找到問(wèn)題發(fā)生的根源。否則,查找問(wèn)題發(fā)生的根源是非常困難的。
如何開(kāi)始開(kāi)啟ADO.NET TracinginSyncServices
在缺省的情況下,Tracing是關(guān)閉的。我們可以通過(guò)配置TraceListener,來(lái)開(kāi)啟Tracing。我們可以通過(guò)編輯app.config來(lái)開(kāi)啟Tracing,請(qǐng)加入以下的代碼:
- <configuration>
- <system.diagnostics>
- <switches>
- <!--0-off,1-error,2-warn,3-info,4-verbose.-->
- <addnameaddname="SyncTracer"value="3"/>
- </switches>
- <traceautoflushtraceautoflush="true">
- <listeners>
- <addnameaddname="TestListener"type="System.Diagnostics.TextWriterTraceListener"initializeData="c:\TraceSample.txt"/>
- </listeners>
- </trace>
- </system.diagnostics>
- </configuration>
如何選擇合適的TraceLevel
Trace的記錄會(huì)帶來(lái)一些性能上的影響,你需要認(rèn)真考慮如何設(shè)置TraceLevel,從而達(dá)到Trace記錄與產(chǎn)品性能上的平衡。通常情況下,如果只是想監(jiān)控錯(cuò)誤消息,選擇TraceLevel=1或2即可。當(dāng)你需要更多的LOG信息以便于調(diào)試觀察時(shí),你可以將TraceLevel=3或4,請(qǐng)記住,這時(shí)候產(chǎn)生的LOG是非常詳細(xì)的,與其對(duì)應(yīng)的LOG文件也會(huì)很大-這會(huì)給程序的性能帶來(lái)不小的影響。通常情況下,我們只會(huì)在調(diào)試錯(cuò)誤以及開(kāi)發(fā)過(guò)程中使用此TraceLevel。
詳細(xì)信息請(qǐng)查看下表:
- Switchvalue
- Tracinglevel
- Output
- 0
- off
- Nomessagestotracelisteners.
- 1
- error
- Onlyerrormessagestotracelisteners.
- 2
- warning
- Errorandwarningmessagestotracelisteners.
- 3
- info
- Informational,warning,anderrormessagestotracelisteners.
- 4
- verbose
- Allmessagestotracelisteners.
開(kāi)始一個(gè)實(shí)例,驗(yàn)證Traceing是否能正常工作,按照上面的我介紹的方法,將TraceLevel=3,運(yùn)行程序后,LOG文件被被產(chǎn)生,