Bekerja dengan File Log

Untuk membuka file log untuk dibaca, panggil PdhOpenQuery dan tentukan jalur ke file log. Untuk membuka file log untuk menulis, Anda harus memanggil PdhOpenLog. Untuk menutup file log, panggil PdhCloseQuery atau PdhCloseLog tergantung pada fungsi mana yang Anda gunakan untuk membuka file log.

Membaca dari file log

Membaca data performa dari file log sama dengan membaca data dari sumber real time—Anda membuka kueri, menambahkan penghitung ke kueri dan memanggil PdhCollectQueryData untuk mengumpulkan sampel dari file log. PdhCollectQueryData mengembalikan PDH_NO_MORE_DATA saat Anda mencapai akhir file log.

Setiap sampel dalam file log berisi stempel waktu ketika awalnya dikumpulkan dan ditulis ke file log. Untuk mengambil stempel waktu untuk sampel pertama dan terakhir dalam file log, panggil fungsi PdhGetDataSourceTimeRange . Jika Anda ingin membatasi sampel yang Anda baca dari log ke rentang waktu tertentu, lihat Mengatur Rentang Waktu untuk Kueri.

Jika Anda tidak tahu objek performa dan penghitung mana yang ada dalam file log, Anda dapat memanggil PdhEnumObjects untuk menentukan daftar objek. Dengan objek , Anda dapat memanggil PdhEnumObjectItems atau PdhExpandWildCardPath untuk mengambil daftar instans dan penghitung objek yang terkandung dalam file log.

Jika Anda memanggil PdhEnumObjectItems, gunakan daftar instans dan penghitung untuk membuat jalur untuk setiap kombinasi instans dan penghitung yang mungkin. Ketika Anda memanggil PdhAddCounter untuk menambahkan penghitung ke kueri, fungsi akan gagal jika file log tidak berisi kombinasi yang diberikan.

Jika Anda menggunakan PdhExpandWildCardPath, Anda dapat membuat jalur yang berisi kartubebas untuk nama dan penghitung instans, misalnya, \object(*)\*. Fungsi mengembalikan PDH_INVALID_PATH jika objek tidak berisi instans. Dalam hal ini, panggil PdhExpandWildCardPath menggunakan wildcard hanya untuk penghitung, misalnya, \object\*.

Sistem operasi yang lebih baru dapat membaca file log yang dihasilkan pada sistem operasi yang lebih lama; namun, file log yang dibuat pada Windows Vista dan sistem operasi yang lebih baru tidak dapat dibaca pada sistem operasi sebelumnya.

Untuk contoh yang membaca data dari file log, lihat Membaca Data Performa dari File Log.

Membaca dari beberapa file log

Jika Anda perlu membuat kueri yang membaca dari beberapa file log, panggil PdhBindInputDataSource untuk mengikat file log bersama-sama. Anda kemudian perlu menggunakan fungsi PDH yang berakhiran 'H', misalnya, PdhOpenQueryH.

Menulis ke file log

Sebelum menulis ke file log, panggil PdhOpenQuery untuk membuat kueri dan menentukan sumber data performa, baik data real time atau file log. Kemudian, tambahkan penghitung yang ingin Anda kueri.

Untuk membuka file tujuan, panggil PdhOpenLog. Tentukan kueri saat Anda membuka file log. Untuk mengumpulkan data performa dan menulisnya ke file log, panggil PdhUpdateLog.

Jika data penghitung sedang ditulis ke file log yang dibatasi koma (.csv) atau dibatasi tab (.tsv) dan jalur berisi instans kartubebas, jalur diperluas dan hanya instans yang ada pada saat jalur diperluas disertakan dalam file log. Namun, untuk file log biner (.blg) atau SQL, wildcard tidak diperluas sehingga file log berisi instans yang dibuat selama pengelogan.

Untuk contoh yang menulis data ke file log, lihat Menulis Data Performa ke File Log.

Memadatkan file log

Anda dapat menggunakan fungsi PdhComputeCounterStatistics untuk memadatkan file log. Misalnya, baca sepuluh rekaman dari file log, panggil PdhComputeCounterStatistics untuk menghitung nilai rata-rata lalu tulis nilai rata-rata ke file log output.

Topik berikut ini menyediakan informasi tambahan tentang menggunakan file log.