真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#如何實(shí)現(xiàn)跟蹤

這篇文章給大家分享的是有關(guān)C#如何實(shí)現(xiàn)跟蹤的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

專業(yè)領(lǐng)域包括網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、商城網(wǎng)站建設(shè)、微信營銷、系統(tǒng)平臺(tái)開發(fā), 與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)公司的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。

一、為什么需要用到跟蹤技術(shù):

        利用跟蹤功能可以從正在運(yùn)行的應(yīng)用程序(發(fā)布后的程序)中查看消息。我們把定義消息(不同級(jí)別的消息)的代碼寫在應(yīng)用程序中,根據(jù)配置文件中配置,從而寫入不同級(jí)別的消息。這些消息會(huì)寫入到哪呢?vs默認(rèn)是寫入到輸出窗口上的。輸出窗口只能在調(diào)試狀態(tài)下看的見。當(dāng)我們跟蹤發(fā)布后的程序那怎么辦呢?我們需要在配置文件中定義一個(gè)偵聽器,來接受從應(yīng)用程序中寫入的消息。下面來具體的介紹跟蹤

二、跟蹤體系架構(gòu):

①,跟蹤源:跟蹤信息的源頭。例如:需要跟蹤程序集或跟蹤某個(gè)命名空間某個(gè)類

②,開關(guān):開關(guān)定義了要記錄的信息級(jí)別。例如:可以請(qǐng)求錯(cuò)誤信息或詳細(xì)詳細(xì)

③,偵聽器:定義了寫入跟蹤消息的位置。

④,篩選器:篩選要記錄的信息級(jí)別。例如:開關(guān)定義了Information級(jí)別,可以用過篩選只記錄Error信息級(jí)別

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

三、參數(shù)對(duì)照表

 幾種偵聽器類型
偵聽器描述
System.Diagnostics.XmlWriterTraceListener寫入Xml文件
System.Diagnostics.TextWriterTraceListener寫入文本
System.Diagnostics.DelimitedListTraceListener寫入帶有分隔符的文本,配置文件屬性( delimiter=":")設(shè)置分隔符號(hào)
System.Diagnostics.EventLogTraceListener寫入事件日志
WebPageTraceListener寫入web跟蹤文件trace.axd中
TraceEventType跟蹤事件類型(   
事件描述
Critical定義了致命錯(cuò)誤或應(yīng)用程序崩潰
Error表示可恢復(fù)的錯(cuò)誤
Information信息性消息
Verbose調(diào)試跟蹤
Warning非關(guān)鍵性問題(警告)
Transfer相關(guān)標(biāo)識(shí)的更改
Start邏輯操作的開始
Stop邏輯操作的停止
Suspand邏輯操作的掛起
Resume邏輯操作的恢復(fù)
 SourceLevels開關(guān)級(jí)別(
級(jí)別描述
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制定要寫入跟蹤輸出中的跟蹤數(shù)據(jù)選項(xiàng)(偵聽器的traceOutputOptions屬性
參數(shù)描述
Callstack寫入調(diào)用堆棧
DateTime寫入日期和時(shí)間
LogicalOperationStack寫入邏輯操作堆棧
None不寫入如何操作
ProcessId寫入進(jìn)程標(biāo)識(shí)
ThreadId寫入線程標(biāo)識(shí)
Timestamp寫入時(shí)間戳

 四、配置跟蹤文件:



     
        
    
 
  
    
    
      
        
          
          
            
            
            
            
          
        
      
    
    
    
    
      
      
    
    
    
    
    
    
      
    
    
    
    
    
    
    
  
  

五、在應(yīng)用程序中寫入消息代碼

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("寫入消息");
            //寫入錯(cuò)誤消息,根據(jù)TraceEventType枚舉不同的消息級(jí)別
            trace.TraceEvent(TraceEventType.Error, 0, "錯(cuò)誤消息");
            //邏輯操作的結(jié)束
            trace.TraceEvent(TraceEventType.Stop, 0, "邏輯操作的結(jié)束");
            //寫入普通消息
            trace.TraceInformation("寫入消息");
        }

    }
}

使用服務(wù)跟蹤查看器,查看xml

C#如何實(shí)現(xiàn)跟蹤

C#如何實(shí)現(xiàn)跟蹤

五、在應(yīng)用程序中寫入消息代碼(相關(guān)性)

    使用相關(guān)性必須給跟蹤數(shù)據(jù)選項(xiàng)設(shè)置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)
        {
            //設(shè)置一個(gè)活動(dòng)ID
            Trace.CorrelationManager.ActivityId = Guid.NewGuid();
            //邏輯操作的開始
            trace.TraceEvent(TraceEventType.Start, 0, "邏輯操作的開始");
            //啟用線程上的邏輯操作
            Trace.CorrelationManager.StartLogicalOperation("Main Operation");
            //寫入普通消息
            trace.TraceInformation("寫入消息");
            //寫入錯(cuò)誤消息,根據(jù)TraceEventType枚舉不同的消息級(jí)別
            trace.TraceEvent(TraceEventType.Error, 0, "錯(cuò)誤消息");
            //開啟一個(gè)線程
            Thread th = new Thread(new ThreadStart(Simple));
            th.Start();

            //停止線程上的邏輯操作
            Trace.CorrelationManager.StopLogicalOperation();
            //邏輯操作的結(jié)束
            trace.TraceEvent(TraceEventType.Stop, 0, "邏輯操作的結(jié)束");

        }

        private static void Simple()
        {
            //設(shè)置一個(gè)活動(dòng)ID
            Trace.CorrelationManager.ActivityId = Guid.NewGuid();
            //啟用線程上的邏輯操作
            Trace.CorrelationManager.StartLogicalOperation("Simple Operation");
            //寫入警告消息
            trace.TraceEvent(TraceEventType.Warning, 0, "警告消息");
            //停止線程上的邏輯操作
            Trace.CorrelationManager.StopLogicalOperation();
           
        }
 

    }
}

C#如何實(shí)現(xiàn)跟蹤

感謝各位的閱讀!關(guān)于“C#如何實(shí)現(xiàn)跟蹤”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


標(biāo)題名稱:C#如何實(shí)現(xiàn)跟蹤
分享地址:http://weahome.cn/article/jschho.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部