Mulai Cepat Terkelola TraceLogging
Bagian berikut menjelaskan langkah-langkah dasar yang diperlukan untuk menambahkan TraceLogging ke kode .NET.
Prasyarat
- .NET 4.6 atau yang lebih baru.
SimpleTraceLoggingExample.cs
Contoh ini menunjukkan cara mencatat peristiwa TraceLogging tanpa perlu membuat file XML manifes instrumentasi terpisah secara manual.
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; }
}
}
Membuat EventSource
Sebelum dapat mencatat peristiwa, Anda harus membuat instans kelas EventSource. Parameter konstruktor pertama mengidentifikasi nama penyedia ini. Penyedia secara otomatis terdaftar untuk Anda seperti yang diilustrasikan dalam contoh.
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
Instans bersifat statis karena seharusnya hanya ada satu instans penyedia tertentu dalam aplikasi Anda pada satu waktu.
Peristiwa Log TraceLogging
Setelah penyedia dibuat, kode berikut dari contoh di atas mencatat peristiwa sederhana.
log.Write("Event 1"); // write an event with no fields
Mencatat data payload peristiwa terstruktur
Anda dapat menentukan data payload terstruktur yang dicatat dengan peristiwa tersebut. Berikan data payload terstruktur baik sebagai jenis anonim atau sebagai instans kelas yang telah diannotasi dengan [EventData]
atribut seperti yang ditunjukkan dalam contoh berikut.
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
Anda harus menambahkan [EventData]
atribut ke kelas payload peristiwa yang Anda tentukan seperti yang ditunjukkan di bawah ini.
[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; }
}
Atribut menggantikan kebutuhan untuk membuat file manifes secara manual untuk menjelaskan data peristiwa. Sekarang yang harus Anda lakukan adalah meneruskan instans kelas ke metode EventSource.Write() untuk mencatat peristiwa dan data payload yang sesuai.
Ringkasan dan langkah berikutnya
Lihat Merekam dan Menampilkan Peristiwa TraceLogging untuk informasi tentang cara mengambil dan melihat data TraceLogging menggunakan versi internal terbaru Dari Windows Performance Tools (WPT).
Lihat Contoh TraceLogging .NET untuk contoh TraceLogging yang lebih terkelola.