Bagikan melalui


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.