在程式開發過程中,有時需要對程式執行狀況做一些日誌記錄,以便以後查詢,維護之用。
有時我們可以使用開源日誌元件,如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的配...