国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#日志類記錄

2019-11-14 15:44:40
字體:
來源:轉載
供稿:網友

每個程序都要和日志打交道。程序日志的質量直接影響了排除問題的難度。普通程序調試信息直接輸出控制臺, 復雜程序則通過文本,xml等方式記錄運行時的調試信息。
在C#中Diagnostics命名空間下有一個微軟提供的專門用于記錄信息的TraceSource類。TraceSource的使用方法很簡單,只需要4行代碼
TraceSource ts = new TraceSource("Code.Main", SourceLevels.All); ts.Listeners.Add(new ConsoleTraceListener()); ts.TraceEvent(TraceEventType.Information, 0, "Message"); ts.Close();
日志類包括以下組成:

  • TraceSource: 日志的主體,日志類都是圍繞這個類展開的。第一個初始化參數是名字,用于唯一標志TraceSource。可以在一個程序中定義多個TraceSource,通過名字進行區分。第二個初始化參數就是SourceSwitch.
  • SourceSwitch: 用于篩選日志。在打日志的時候(調用函數TraceEvent),可以設置輸出日志的類型(TraceEventType), 比如 Critical、Error、Warning、Information和Verbose。SourceSwitch根據日志的類型篩選日志,如果設置為SourceLevels.Error,那么只有Error, Critical類型的日志能被輸出到Listener.
  • Listener: 輸出日志的位置。例如ConsoleTraceListener將日志輸出到控制臺, XmlWriterTraceListener將日志以xml格式輸出到文件中。
  • TraceFilters: TraceSource可以篩選輸出到Listener的日志,同樣, Listener也可以篩選輸出的日志,這就是TraceFilter的作用.

提示:

  • 一個程序可以有多個TraceSource, 一個TraceSource可以設置多個Listener, 不同的TraceSource可以共享一個Listerner(這也就是TraceFilter存在的意義)。如果一個TraceSource設置多個Listener,那么日志會同時輸出到所有Listener。
  • SourceLevels有兩種類型,一種是和重要性相關的日志類型, 比如Critical, Error, Warning, Information,Verbose。 另外一種是和活動相關的日志類型ActivityTracing, 只有TraceEventType.Start, TraceEventType.Suspend, TraceEventType.Transfer, TraceEventType.Resume。 和活動相關的日志類型主要用于記錄程序中子線程或者子任務開始,結束的狀態。
  • TraceEvent的第二個參數是一個整形助記符。在不同的函數中設置不同的助記符或者直接設置為線程id,用來記錄線程的運行狀態。
  • 調用TraceEvent不會直接將日志輸出到Listener, 需要調用Flush或者Close才能輸出到Listener.
  • TraceSource有一個方法TraceTransfer, 是和活動相關的方法。他向Listener寫入一條轉移信息(其實就是輸出一條包含guid的信息),表明一個活動(線程)執行了一個新的子活動(子線程)。可以根據這條信息判斷程序的執行流程。這個方法需要配合Trace.CorrelationManager.StartLogicalOperation,Trace.CorrelationManager.StopLogicalOperation使用。
  • 微軟幫我們實現了常用的Listener, 比如ConsoleTraceListener,TextWriterTraceListener, XmlWriterTraceListener, DelimitedListTraceListener, EventLogTraceListener, EventSchemaTraceListener。如果需要定制Listener, 只需要實現TraceListener接口即可。
  • 可以通過App.config動態配置日志類的屬性,但程序中設置的屬性會覆蓋配置文件的屬性。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿拉善左旗| 尤溪县| 乌兰浩特市| 建瓯市| 罗源县| 鄂温| 界首市| 五河县| 峨山| 成武县| 林甸县| 北碚区| 察雅县| 临夏市| 乌拉特中旗| 岳池县| 荔浦县| 九江县| 东阿县| 公安县| 辽阳县| 秀山| 九寨沟县| 青神县| 奈曼旗| 吉木萨尔县| 边坝县| 富蕴县| 永善县| 滦平县| 安塞县| 夏河县| 本溪市| 光泽县| 吉林市| 平遥县| 丹巴县| 滦南县| 邹城市| 西青区| 青阳县|