TraceLogging Managed 快速入門
下一節說明將 TraceLogging 新增至 .NET 程式碼所需的基本步驟。
必要條件
- .NET 4.6 或更新版本。
SimpleTraceLoggingExample.cs
此範例示範如何記錄 TraceLogging 事件,而不需要手動建立個別檢測資訊清單 XML 檔案。
using System;
using System.Diagnostics.Tracing;
namespace SimpleTraceLoggingExample
{
class Program
{
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
static void Main(string[] args)
{
log.Write("Event 1"); // write an event with no fields
log.Write("Event 2", new { someEventData = DateTime.Now }); // Sending an anonymous type as event data
ExampleStructuredData EventData = new ExampleStructuredData() { TransactionID = 1234, TransactionDate = DateTime.Now };
log.Write("Event 3", EventData); // Sending a class decorated with [EventData] as event data
}
}
[EventData] // [EventData] makes it possible to pass an instance of the class as an argument to EventSource.Write()
public sealed class ExampleStructuredData
{
public int TransactionID { get; set; }
public DateTime TransactionDate { get; set; }
}
}
建立 EventSource
您必須先建立 EventSource 類別的實例,才能記錄事件。 第一個建構函式參數會識別這個提供者的名稱。 提供者會自動為您註冊,如範例所示。
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
實例是靜態的,因為應用程式中一次只能有一個特定提供者的實例。
記錄追蹤記錄事件
建立提供者之後,上述範例中的下列程式碼會記錄簡單的事件。
log.Write("Event 1"); // write an event with no fields
記錄結構化事件承載資料
您可以定義以 事件記錄的結構化承載資料。 提供結構化承載資料做為匿名型別,或是已以 [EventData]
屬性標注的類別實例,如下列範例所示。
log.Write("Event 2", new { someEventData = DateTime.Now }); // Sending an anonymous type as event data
ExampleStructuredData EventData = new ExampleStructuredData() { TransactionID = 1234, TransactionDate = DateTime.Now };
log.Write("Event 3", EventData); // Sending a class decorated with [EventData] as event data
您必須將 [EventData]
屬性新增至您定義的事件承載類別,如下所示。
[EventData] // [EventData] makes it possible to pass an instance of the class as an argument to EventSource.Write()
public sealed class ExampleStructuredData
{
public int TransactionID { get; set; }
public DateTime TransactionDate { get; set; }
}
屬性會取代手動建立資訊清單檔來描述事件資料的需求。 現在,您只需要將 類別的實例傳遞至 EventSource.Write () 方法,以記錄事件和對應的承載資料。
摘要和後續步驟
如需如何使用最新內部版本的 Windows 效能工具 (WPT) 擷取和檢視 TraceLogging 資料的詳細資訊,請參閱 記錄和顯示 TraceLogging 事件 。
如需更多 Managed TraceLogging 範例,請參閱 .NET TraceLogging 範例。