C#如何实现跟踪
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章给大家分享的是有关C#如何实现跟踪的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、为什么需要用到跟踪技术:利用跟踪功能可以从正在运行的应用程序(发布后的程序)中查
千家信息网最后更新 2025年01月16日C#如何实现跟踪
这篇文章给大家分享的是有关C#如何实现跟踪的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
一、为什么需要用到跟踪技术:
利用跟踪功能可以从正在运行的应用程序(发布后的程序)中查看消息。我们把定义消息(不同级别的消息)的代码写在应用程序中,根据配置文件中配置,从而写入不同级别的消息。这些消息会写入到哪呢?vs默认是写入到输出窗口上的。输出窗口只能在调试状态下看的见。当我们跟踪发布后的程序那怎么办呢?我们需要在配置文件中定义一个侦听器,来接受从应用程序中写入的消息。下面来具体的介绍跟踪
二、跟踪体系架构:
①,跟踪源:跟踪信息的源头。例如:需要跟踪程序集或跟踪某个命名空间或某个类
②,开关:开关定义了要记录的信息级别。例如:可以请求错误信息或详细详细
③,侦听器:定义了写入跟踪消息的位置。
④,筛选器:筛选要记录的信息级别。例如:开关定义了Information级别,可以用过筛选只记录Error信息级别
需要引用命名空间:using System.Diagnostics;
三、参数对照表
侦听器 | 描述 | |
---|---|---|
System.Diagnostics.XmlWriterTraceListener | 写入Xml文件 | |
System.Diagnostics.TextWriterTraceListener | 写入文本 | |
System.Diagnostics.DelimitedListTraceListener | 写入带有分隔符的文本,配置文件属性( delimiter=":")设置分隔符号 | |
System.Diagnostics.EventLogTraceListener | 写入事件日志 | |
WebPageTraceListener | 写入web跟踪文件trace.axd中 |
事件 | 描述 |
---|---|
Critical | 定义了致命错误或应用程序崩溃 |
Error | 表示可恢复的错误 |
Information | 信息性消息 |
Verbose | 调试跟踪 |
Warning | 非关键性问题(警告) |
Transfer | 相关标识的更改 |
Start | 逻辑操作的开始 |
Stop | 逻辑操作的停止 |
Suspand | 逻辑操作的挂起 |
Resume | 逻辑操作的恢复 |
级别 | 描述 |
---|---|
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 事件通过。 |
参数 | 描述 |
---|---|
Callstack | 写入调用堆栈 |
DateTime | 写入日期和时间 |
LogicalOperationStack | 写入逻辑操作堆栈 |
None | 不写入如何操作 |
ProcessId | 写入进程标识 |
ThreadId | 写入线程标识 |
Timestamp | 写入时间戳 |
四、配置跟踪文件:
五、在应用程序中写入消息代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Diagnostics;namespace TraceDome4{ class Program { //跟踪源 internal static TraceSource trace = new TraceSource("TraceDome4"); static void Main(string[] args) { //逻辑操作的开始 trace.TraceEvent(TraceEventType.Start, 0, "逻辑操作的开始"); //写入普通消息 trace.TraceInformation("写入消息"); //写入错误消息,根据TraceEventType枚举不同的消息级别 trace.TraceEvent(TraceEventType.Error, 0, "错误消息"); //逻辑操作的结束 trace.TraceEvent(TraceEventType.Stop, 0, "逻辑操作的结束"); //写入普通消息 trace.TraceInformation("写入消息"); } }}
使用服务跟踪查看器,查看xml
五、在应用程序中写入消息代码(相关性)
使用相关性必须给跟踪数据选项设置Callstack,LogicalOperationStack
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Diagnostics;using System.Threading;namespace TraceDome4{ class Program { //跟踪源 internal static TraceSource trace = new TraceSource("TraceDome4"); static void Main(string[] args) { //设置一个活动ID Trace.CorrelationManager.ActivityId = Guid.NewGuid(); //逻辑操作的开始 trace.TraceEvent(TraceEventType.Start, 0, "逻辑操作的开始"); //启用线程上的逻辑操作 Trace.CorrelationManager.StartLogicalOperation("Main Operation"); //写入普通消息 trace.TraceInformation("写入消息"); //写入错误消息,根据TraceEventType枚举不同的消息级别 trace.TraceEvent(TraceEventType.Error, 0, "错误消息"); //开启一个线程 Thread th = new Thread(new ThreadStart(Simple)); th.Start(); //停止线程上的逻辑操作 Trace.CorrelationManager.StopLogicalOperation(); //逻辑操作的结束 trace.TraceEvent(TraceEventType.Stop, 0, "逻辑操作的结束"); } private static void Simple() { //设置一个活动ID Trace.CorrelationManager.ActivityId = Guid.NewGuid(); //启用线程上的逻辑操作 Trace.CorrelationManager.StartLogicalOperation("Simple Operation"); //写入警告消息 trace.TraceEvent(TraceEventType.Warning, 0, "警告消息"); //停止线程上的逻辑操作 Trace.CorrelationManager.StopLogicalOperation(); } }}
感谢各位的阅读!关于"C#如何实现跟踪"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
消息
跟踪
逻辑
事件
级别
程序
错误
信息
应用程序
文件
线程
应用
侦听器
配置
不同
普通
代码
标识
输出
C#
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
用向量做数据库的前端展现
数据库中创建分区
中石油公司的dns服务器地址
数据库项目
sql如何将空值填入数据库
服务器sftp用户登陆验证失败
web服务传输大量数据库
杭州快象网络技术公司销售
计算机网络安全 试卷
数据库的ip地址在哪儿
网络安全之盾筑牢
园区网络安全可研报告
oracl怎么删除数据库
对口升学网络技术考题
服务器怎么把指定d盘变成磁盘
幼儿网络安全拍手歌
方舟服务器模组玩家怎么删
工行软件开发倒闭
河南青柠网络技术有限公司
敏捷软件开发原则模式和实践
战地4租服务器
广大银行合肥软件开发
维护网络安全从我做起藏语版
计算机网络技术属于哪个学科
知白网络安全竞赛有时间限制吗
四川西部天时网络技术
商务信息技术网络安全
南通数据库
网络安全与意识形态的关系
网络安全管理法时间