Bagikan melalui


Tentang TraceLogging

TraceLogging adalah sistem untuk mencatat peristiwa yang dapat didekodekan tanpa manifes. Di Windows, TraceLogging digunakan pada komponen mode pengguna dan mode kernel untuk menghasilkan peristiwa Event Tracing for Windows (ETW). TraceLogging dibangun pada Pelacakan Peristiwa untuk Windows (ETW) dan menyediakan cara yang disederhanakan untuk kode instrumen.

Pelacakan Peristiwa untuk Windows (ETW) diperkenalkan dengan Windows 2000 dan diperbarui di Windows Vista. TraceLogging dibangun pada API Windows Vista ETW. Penyedia dapat menggunakan TraceLogging saat berjalan di Windows Vista atau yang lebih baru. Pengontrol jejak ETW yang ada dapat digunakan untuk mengontrol penyedia TraceLogging dan mengambil jejak menggunakan API Windows Vista. Dekoder jejak ETW yang menggunakan API dekode TDH dapat mendekode peristiwa TraceLogging saat sedang beroperasi di Windows 10 atau versi lebih baru.

TraceLogging menawarkan beberapa manfaat:

  • Kesederhanaan mendefinisikan peristiwa langsung dalam kode, mirip dengan WPP tetapi tanpa perlu alat pra-pemrosesan.
  • Data terstruktur: bidang bernama beserta jenisnya, serta dukungan untuk array dan struktur.
  • Pengaitan peristiwa melalui aktivitas ETW .
  • Semua informasi decoding untuk peristiwa disertakan dalam peristiwa itu sendiri, sehingga tidak ada file tambahan yang diperlukan untuk mendekode.
  • API penyedia peristiwa TraceLogging tersedia untuk C/C++, .NET, dan Windows Runtime (WinRT). Dukungan eksternal tersedia untuk Python, Rust, dll.

Meskipun TraceLogging memberikan beberapa manfaat dan harus dipertimbangkan untuk pelacakan baru, ETW berbasis manifes masih sesuai untuk banyak skenario.

  • Jika peristiwa Anda menargetkan salah satu Log Windows versi lama di Log Peristiwa Windows (misalnya log Sistem atau Aplikasi), terus gunakan ETW yang berbasis manifes.
  • Jika ukuran file jejak adalah pertimbangan penting, terus gunakan ETW berbasis manifes. Peristiwa TraceLogging mencakup string peristiwa (nama penyedia, nama peristiwa, dan nama bidang) di dalam setiap peristiwa dan biasanya lebih besar dibandingkan dengan peristiwa berbasis manifes yang setara.
  • Jika Anda memiliki investasi besar dalam teknologi pelacakan yang ada, tidak ada persyaratan untuk beralih ke TraceLogging.
  • Jika tidak, pertimbangkan untuk menggunakan TraceLogging karena menawarkan pengalaman yang lebih sederhana bagi pengembang dan konsumen peristiwa.

Gambaran umum tingkat tinggi API

Ada beberapa API TraceLogging, masing-masing menargetkan audiens pengembang yang berbeda.

  • Jika Anda perlu menghasilkan peristiwa dari kode C atau C++, TraceLoggingProvider.h menyediakan API yang efisien untuk menghasilkan peristiwa TraceLogging dari mode pengguna atau kode mode kernel. Peristiwa harus didefinisikan pada waktu kompilasi.
  • Sebaliknya, jika Anda perlu membuat peristiwa dari kode .NET, kelas .NET EventSource mendukung pembuatan peristiwa ETW berbasis manifes dan berbasis TraceLogging. Peristiwa harus didefinisikan pada waktu kompilasi.
  • Jika tidak, jika Anda menggunakan Windows Runtime (WinRT), LoggingChannel telah diperluas di Windows 10 untuk mencatat peristiwa TraceLogging.
  • Jika tidak, Anda mungkin dapat menggunakan opsi yang didukung komunitas seperti TraceLoggingDynamic.

Tentang Pelacakan Peristiwa