使用Trace實現程式日誌

2021-09-05 19:43:52 字數 2965 閱讀 3169

在程式開發過程中,有時需要對程式執行狀況做一些日誌記錄,以便以後查詢,維護之用。

有時我們可以使用開源日誌元件,如log4net,nlog,entlib log等,但有時為簡便,

.netframework中trace,debug就可以用來記錄日誌。並且也比較靈活。

位於system.diagnostice命名空間下。注意,只有當程式集用trace和debug符號常量編譯是時,

這兩個類才能正常工作。看**:

1#define

testmode  

//#define directives must be at top of file2//

symbol names are uppercase by convention.

3using

system;

4using

system.collections.generic;

5using

system.linq;

6using

system.text;

7using

system.io;

8using

system.xml;

9using

system.xml.xpath;

10using

system.diagnostics;

1112

namespace

consoletest1

1326

27///

28///

using conditional compilation

29///

30///

author petterliu 

31public

void

testtraceoutput2()

3239

40///

41///

using conditional compilation

42///

43public

void

testtraceoutput3()

4451}52

}53以上是一些簡單應用,還可以使用tracesource,tracelistener,

.net framework中提供以下的tracelistener:

defauttracelistener 預設的,資料流會重定向到visual studio的輸出視窗

textwritertracelistener 以檔案流或檔案方式追加寫到檔案。

eventlogtracelistener 寫windows event log.

eventprovidertracelistener 寫和追蹤windows (etw) subsystem in windows vista.

webpagetracelistener 寫到乙個asp.net web頁面.

textwritertracelistener 子類又有

consoletracelistener   

delimitedlisttracelistener

xmlwritertracelistener  

eventschematracelistener 將端對端事件的跟蹤或除錯輸出定向到 xml 編碼的符合架構的日誌檔案

注: eventschematracelistener 是.net framework 3.5 新增的。

本文主要演示textwritertracelistener,traceoutputoptions可以記錄當前時間,呼叫堆疊,程序資訊等,

其它請參考msdn。

1///

2///

textwritertracelistener

3///

4public

void

foo()513

14///

15///

tracesource and tracelistener

16///

17public

void

testtracesource()18

同時增加,多個

1///

2///

add many listeners.

3///

4public

void

testxmltrace()

5       

注意:要呼叫flush()方法後,才會把緩衝區內容寫出去。cache只有4k,在debug和trace下使用任何檔案流的listener,乙個好的

策略是設定autoflush屬性為true。否則,如果出乙個未處理的異常或嚴重錯誤,最少4k快取診斷資訊可能會丟失。

<

configuration

>

<

system.diagnostics

>

<

trace 

autoflush

="false"

indentsize

="4"

>

<

listeners

>

<

add 

name

="mylistener"

type

="system.diagnostics.textwritertracelistener"

initializedata

="textwriteroutput.log"

/>

<

remove 

name

="default"

/>

listeners

>

trace

>

system.diagnostics

>

configuration

>

後記,我們還可以根據需要繼承textwritertracelistener,定義我們自己的tracelistener.

C 使用Trace記錄程式日誌

在程式開發中,我們通常需要記錄程式執行的狀態,在程式部署後,發生的異常可以記錄在日誌中,便於發現程式潛在的問題。在.net平台,有很多優秀的日誌類庫,例如log4net。如果程式很小,我們可以自己通過c 的trace類來實現乙個基本的日誌記錄功能。下面直接看 public class tracehe...

C 使用Trace記錄日誌

c 記錄日誌比較簡單的方法之一是用.net自帶的日誌記錄工具trace類 有多種寫法,比較靈活的一種 如下 每次啟動新建乙個日誌檔案 string currtime datetime.now.tostring yyyymmddhhmmss trace.listeners.add new textwr...

flex程式列印log日誌,trace資訊

可以列印logger的內容,乙個例子 形成日誌內容 flash player是除錯版的,10.0的除錯不能夠形成flashlog.txt檔案 動態檢視日誌的檔案工具baretail baretail測試工具的優點 flex應用程式通過日誌資訊除錯 trace或者logger資訊 編輯mm.cfg的配...