Tentang TraceLogging
TraceLogging adalah sistem untuk peristiwa pengelogan yang dapat didekodekan tanpa manifes. Di Windows, TraceLogging digunakan dalam komponen mode pengguna dan mode kernel untuk menghasilkan peristiwa Pelacakan Peristiwa untuk 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 WINDOWS Vista ETW API. Penyedia dapat menggunakan TraceLogging saat berjalan pada Windows Vista atau yang lebih baru. Pengontrol pelacakan ETW yang ada dapat digunakan untuk mengontrol penyedia TraceLogging dan mengambil jejak menggunakan API Windows Vista. Dekode jejak ETW yang ada yang menggunakan API pendekodean TDH dapat mendekode peristiwa TraceLogging saat berjalan di Windows 10 atau yang 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 dengan jenis, dukungan untuk array dan struktur.
- Korelasi peristiwa melalui aktivitas ETW.
- Semua informasi pendekodean 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 warisan di Log Peristiwa Windows (misalnya log Sistem atau Aplikasi), terus gunakan ETW berbasis manifes.
- Jika ukuran file pelacakan 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 dari 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 kode mode pengguna atau mode kernel. Peristiwa harus ditentukan pada waktu kompilasi.
- Jika tidak, jika Anda perlu menghasilkan peristiwa dari kode .NET, kelas .NET EventSource mendukung pembuatan peristiwa ETW berbasis manifes dan berbasis TraceLogging. Peristiwa harus ditentukan 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.