Bagikan melalui


Memantau Peristiwa (Pelacakan Peristiwa)

Konsumen pelacakan peristiwa dapat memproses peristiwa dari satu atau beberapa penyedia. Konsumen dapat memproses peristiwa dari file log atau secara real time. Anda dapat memantau peristiwa secara real time hanya jika pengontrol menetapkan mode pencatatan real time untuk sesi tersebut. Untuk alasan performa, pemrosesan real time tidak disarankan sebelum Windows Vista.

Untuk menentukan sesi pelacakan tempat Anda ingin memproses peristiwa, Anda menggunakan struktur EVENT_TRACE_LOGFILE. Anda harus menginisialisasi salinan struktur ini untuk setiap file log atau sesi real time yang ingin Anda proses.

Untuk memproses event dari log file, atur elemen LogFileName ke nama log file. Untuk mengonsumsi peristiwa dari sesi real-time, setel anggota LoggerName ke nama sesi. Anda juga menggunakan struktur ini untuk menentukan panggilan balik BufferCallback dan panggilan balik EventCallback, atau EventRecordCallback, yang digunakan untuk memproses peristiwa.

  • eventRecordCallback—Menerima dan memproses semua peristiwa (termasuk peristiwa header) dari satu atau beberapa file log dan sesi real time. Anda menerapkan panggilan balik ini jika Anda menggunakan fungsi pembantu data pelacakan untuk mengurai data peristiwa atau Anda ingin mengambil metadata tentang peristiwa tersebut.
  • EventCallback —Menerima dan memproses semua peristiwa (termasuk peristiwa header) dari satu atau beberapa file log dan sesi real time.
  • bufferCallback—Menerima dan memproses informasi ringkasan tentang buffer saat ini, seperti peristiwa yang hilang. ETW memanggil panggilan balik setelah mengirimkan semua peristiwa di buffer kepada konsumen. Konsumen juga dapat menggunakan panggilan balik ini untuk membatalkan pemrosesan peristiwa; namun, jika Anda mengonsumsi peristiwa secara real time, ETW mengirimkan peristiwa hingga pengontrol menghentikan sesi.

Setelah menentukan satu atau beberapa sesi pelacakan, panggil fungsiOpenTrace untuk setiap sesi pelacakan yang ingin Anda proses; Anda dapat memproses peristiwa dari satu atau beberapa file log, tetapi hanya dari satu sesi real-time. Anda kemudian meneruskan daftar handle sesi pelacakan yang OpenTrace mengembalikan ke fungsi ProcessTrace. Fungsi ProcessTrace menggabungkan peristiwa, mengurutkannya menjadi urutan kronologis, lalu mengirimkannya ke panggilan balik satu per satu. Peristiwa dapat disaring untuk menyertakan hanya yang termasuk dalam rentang waktu tertentu menggunakan parameter StartTime dan EndTime. Fungsi ProcessTrace memblokir utas hingga konsumen Anda memproses semua peristiwa dalam sesi pelacakan, BufferCallback mengembalikan FALSE, atau Anda memanggil CloseTrace.

Sebelum Windows Vista: Anda dapat memanggil CloseTrace hanya setelah ProcessTrace kembali.

Untuk contoh yang menunjukkan cara mengonsumsi peristiwa yang diterbitkan menggunakan file manifes, MOF, atau TMF, lihat Mengambil Data Peristiwa Menggunakan TDH. Perhatikan bahwa dimulai dengan Windows Vista, Anda harus menggunakan fungsi pembantu data pelacakan (TDH) untuk mengonsumsi peristiwa.

Untuk contoh yang menunjukkan cara mengonsumsi peristiwa yang diterbitkan menggunakan MOF, lihat Mengambil Kembali Data Peristiwa Menggunakan MOF.