当前位置:文章中心 >> Winform/客户端程序
|
微软提供的专门用于记录信息的TraceSource类
|
夜鹰教程网 来源:www.yyjcw.com 日期:2017-11-4 17:26:11
|
微软提供的专门用于记录信息的TraceSource类
|
这篇文章不能解决你的问题?我们还有相关视频教程云课堂 全套前端开发工程师培训课程 微信号:yyjcw10000 QQ:1416759661 远程协助需要加QQ! 业务范围:视频教程|程序开发|在线解答|Demo制作|远程调试| 点击查看相关的视频教程。 技术范围:全端开发/前端开发/webapp/web服务/接口开发/单片机/C#/java/node/sql server/mysql/mongodb/android/。
|
每个程序都要和日志打交道。程序日志的质量直接影响了排除问题的难度。普通程序调试信息直接输出控制台, 复杂程序则通过文本,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动态配置日志类的属性,但程序中设置的属性会覆盖配置文件的属性。
|
|
热门服务/教程目录
|
客服电话:153 9760 0032
购买教程QQ:1416759661
|
|
|