C#如何实现跟踪
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关C#如何实现跟踪的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、为什么需要用到跟踪技术:利用跟踪功能可以从正在运行的应用程序(发布后的程序)中查
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
疫情对互联网科技公司影响
科技互联网技术
互联网金融 科技
互联网科技金融公司
善班互联网科技
迪茉互联网科技
远拓互联网科技
上海亿帐通互联网科技
恒生科技互联网指数分析
互联网系的金融科技公司
茂名市互联网科技产业园
千方科技属于互联网企业吗
恒生互联网科技指数跳水
互联网科技研发水平
互联网数据科技专业
江苏苏星互联网科技有限公司
云南省自由互联网科技有限公司
互联网金融运营模式中的金融科技
杭州融税互联网科技有限公司
长沙易易互联网科技有限公司
喔噻互联网科技有限公司
A股互联网金融科技公司
互联网科技未来
深圳科技互联网
互联网科技的发展
易互联网科技有限公司
互联网科技革命
腾讯科技 互联网女皇
深圳期待互联网科技
工业互联网展湾科技股份有限公司