您的位置:首页 > 编程语言 > C#

c#跟踪

2016-07-03 16:19 218 查看
本文出自:http://962410314.blog.51cto.com/7563109/1599988

一、为什么需要用到跟踪技术:

利用跟踪功能可以从正在运行的应用程序(发布后的程序)中查看消息。我们把定义消息(不同级别的消息)的代码写在应用程序中,根据配置文件中配置,从而写入不同级别的消息。这些消息会写入到哪呢?vs默认是写入到输出窗口上的。输出窗口只能在调试状态下看的见。当我们跟踪发布后的程序那怎么办呢?我们需要在配置文件中定义一个侦听器,来接受从应用程序中写入的消息。下面来具体的介绍跟踪

二、跟踪体系架构:

①,跟踪源:跟踪信息的源头。例如:需要跟踪程序集或跟踪某个命名空间或某个类

②,开关:开关定义了要记录的信息级别。例如:可以请求错误信息或详细详细

③,侦听器:定义了写入跟踪消息的位置。

④,筛选器:筛选要记录的信息级别。例如:开关定义了Information级别,可以用过筛选只记录Error信息级别

需要引用命名空间:using System.Diagnostics;

三、参数对照表

几种侦听器类型

侦听器描述
System.Diagnostics.XmlWriterTraceListener写入Xml文件
System.Diagnostics.TextWriterTraceListener写入文本
System.Diagnostics.DelimitedListTraceListener写入带有分隔符的文本,配置文件属性( delimiter=":")设置分隔符号
System.Diagnostics.EventLogTraceListener写入事件日志
WebPageTraceListener写入web跟踪文件trace.axd中
TraceEventType跟踪事件类型( <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error"/> )

事件描述
Critical定义了致命错误或应用程序崩溃
Error表示可恢复的错误
Information信息性消息
Verbose调试跟踪
Warning非关键性问题(警告)
Transfer相关标识的更改
Start逻辑操作的开始
Stop逻辑操作的停止
Suspand逻辑操作的挂起
Resume逻辑操作的恢复
SourceLevels开关级别( <add name="myTraceInfo" value="Off"/> )

级别描述
ActivityTracing允许 Stop、Start、Suspend、Transfer 和 Resume 事件通过。
All允许所有事件通过。
Critical只允许 Critical 事件通过。
Error允许 Critical 和 Error 事件通过。
Information允许 Critical、Error、Warning 和 Information 事件通过。
Off不允许任何事件通过。
Verbose允许 Critical、Error、Warning、Information 和 Verbose 事件通过。
Warning允许 Critical、Error 和 Warning 事件通过。
TraceOptions制定要写入跟踪输出中的跟踪数据选项( 侦听器的traceOutputOptions属性 )

参数描述
Callstack写入调用堆栈
DateTime写入日期和时间
LogicalOperationStack写入逻辑操作堆栈
None不写入如何操作
ProcessId写入进程标识
ThreadId写入线程标识
Timestamp写入时间戳
四、配置跟踪文件:

五、在应用程序中写入消息代码

使用服务跟踪查看器,查看xml









五、在应用程序中写入消息代码(相关性)

使用相关性必须给跟踪数据选项设置Callstack,LogicalOperationStack





本文出自 “程序猿的家--Hunter” 博客,请务必保留此出处http://962410314.blog.51cto.com/7563109/1599988

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://962410314.blog.51cto.com/7563109/1599988

一、为什么需要用到跟踪技术:

利用跟踪功能可以从正在运行的应用程序(发布后的程序)中查看消息。我们把定义消息(不同级别的消息)的代码写在应用程序中,根据配置文件中配置,从而写入不同级别的消息。这些消息会写入到哪呢?vs默认是写入到输出窗口上的。输出窗口只能在调试状态下看的见。当我们跟踪发布后的程序那怎么办呢?我们需要在配置文件中定义一个侦听器,来接受从应用程序中写入的消息。下面来具体的介绍跟踪

二、跟踪体系架构:

①,跟踪源:跟踪信息的源头。例如:需要跟踪程序集或跟踪某个命名空间或某个类

②,开关:开关定义了要记录的信息级别。例如:可以请求错误信息或详细详细

③,侦听器:定义了写入跟踪消息的位置。

④,筛选器:筛选要记录的信息级别。例如:开关定义了Information级别,可以用过筛选只记录Error信息级别

需要引用命名空间:using System.Diagnostics;

三、参数对照表

几种侦听器类型

侦听器描述
System.Diagnostics.XmlWriterTraceListener写入Xml文件
System.Diagnostics.TextWriterTraceListener写入文本
System.Diagnostics.DelimitedListTraceListener写入带有分隔符的文本,配置文件属性( delimiter=":")设置分隔符号
System.Diagnostics.EventLogTraceListener写入事件日志
WebPageTraceListener写入web跟踪文件trace.axd中
TraceEventType跟踪事件类型( <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error"/> )

事件描述
Critical定义了致命错误或应用程序崩溃
Error表示可恢复的错误
Information信息性消息
Verbose调试跟踪
Warning非关键性问题(警告)
Transfer相关标识的更改
Start逻辑操作的开始
Stop逻辑操作的停止
Suspand逻辑操作的挂起
Resume逻辑操作的恢复
SourceLevels开关级别( <add name="myTraceInfo" value="Off"/> )

级别描述
ActivityTracing允许 Stop、Start、Suspend、Transfer 和 Resume 事件通过。
All允许所有事件通过。
Critical只允许 Critical 事件通过。
Error允许 Critical 和 Error 事件通过。
Information允许 Critical、Error、Warning 和 Information 事件通过。
Off不允许任何事件通过。
Verbose允许 Critical、Error、Warning、Information 和 Verbose 事件通过。
Warning允许 Critical、Error 和 Warning 事件通过。
TraceOptions制定要写入跟踪输出中的跟踪数据选项( 侦听器的traceOutputOptions属性 )

参数描述
Callstack写入调用堆栈
DateTime写入日期和时间
LogicalOperationStack写入逻辑操作堆栈
None不写入如何操作
ProcessId写入进程标识
ThreadId写入线程标识
Timestamp写入时间戳
四、配置跟踪文件:

五、在应用程序中写入消息代码

使用服务跟踪查看器,查看xml









五、在应用程序中写入消息代码(相关性)

使用相关性必须给跟踪数据选项设置Callstack,LogicalOperationStack





本文出自 “程序猿的家--Hunter” 博客,请务必保留此出处http://962410314.blog.51cto.com/7563109/1599988
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c#