Bagikan melalui


Sesi Pelacakan Pencatat Global

Sesi jejak Global Logger merekam peristiwa yang terjadi selama proses boot sebelum sistem beroperasi penuh, seperti peristiwa yang dihasilkan oleh driver perangkat. Ini adalah sesi pelacakan yang dipesan yang dibangun ke dalam Windows.

Sesi pelacakan Global Logger selalu menulis pesan ke log jejak. Global Logger tidak mendukung sesi pelacakan real-time atau sesi pelacakan yang di-buffer.

Karena Global Logger harus tersedia di awal proses boot sistem operasi, itu dimulai dan dikonfigurasi dengan menggunakan entri registri (dalam subkunci HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger ), alih-alih panggilan fungsi. Setelah memulai, Global Logger bertindak seperti sesi pelacakan peristiwa biasa.

Sesi jejak Global Logger menggunakan nama sesi yang dipesan, "GlobalLogger." GUID kontrol diwakili oleh konstanta , GlobalLoggerGuid. Anda membuat sesi pelacakan Global Logger, lalu memulai ulang komputer untuk memulai sesi pelacakan. Hanya satu sesi pelacakan Global Logger yang dapat berjalan di komputer pada satu waktu.

Untuk membuat sesi pelacakan Global Logger, gunakan Tracelog. Ini secara otomatis membuat subkunci registri dan entri yang menyimpan opsi sesi pelacakan. Sesi pelacakan Global Logger dimulai saat Anda memulai ulang komputer. Untuk informasi selengkapnya, lihat Sintaks Perintah Tracelog.

Untuk memformat pesan pelacakan dari sesi pelacakan Global Logger, gunakan Tracefmt dengan system.tmf, file format pesan pelacakan yang disertakan dalam WDK.

Karena sesi Global Logger dipicu oleh entri registri, sesi ini berjalan setiap kali entri muncul di registri. Untuk mencegah sesi Global Logger dimulai setiap kali sistem dimulai, atur nilai entri Mulai ke 0 atau hapus semua entri registri.

Anda dapat mengonversi sesi jejak Global Logger menjadi sesi pelacakan NT Kernel Logger, sehingga melacak kernel selama proses boot. Untuk informasi, lihat Sesi Pencatat Global Boot-time

Penyedia pelacakan, seperti driver mode kernel dan aplikasi mode pengguna, dapat masuk ke sesi pelacakan Global Logger. Ini memungkinkan Anda untuk melacak driver atau penyedia pelacakan lainnya selama boot sistem. Untuk informasi, lihat Pengelogan ke Sesi Pencatat Global

Batasan Sesi Pelacakan Pencatat Global

Sesi pelacakan Global Logger sangat berguna, tetapi penting untuk menyadari keterbatasannya:

Anda hanya dapat menjalankan satu sesi Global Logger pada satu waktu.

Sesi Global Logger tidak mengirim pemberitahuan aktifkan ke penyedia.

Entri registri Global Logger tetap berada di registri dan efektif hingga Anda mengatur ulang atau menghapusnya secara manual, atau menggunakan perintah tracelog -remove . Hingga Anda mengatur ulang, sesi Global Logger dimulai setiap kali Anda memulai sistem.

Pencatat Windows ACPI diaktifkan secara permanen untuk sesi pelacakan Global Logger. Pesan pelacakan dari pencatat ini muncul di log jejak.

Jika sesi pelacakan standar dimulai saat driver masuk ke sesi Global Logger, driver akan beralih dan mulai masuk ke sesi pelacakan standar.

Entri Registri Pencatat Global

Tabel berikut ini memperlihatkan entri registri yang mengonfigurasi sesi Global Logger. Entri ini ada di subkunci HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger . Hanya entri Mulai yang diperlukan.

Selain entri registri dalam tabel ini, Anda juga dapat menambahkan subkuntah ControlGUID di bawah subkunji GlobalLogger untuk mewakili penyedia pelacakan, seperti driver, yang mencatat ke sesi pelacakan Global Logger. Untuk informasi, lihat Pengelogan ke Sesi Pencatat Global.

Entri Jenis data Deskripsi

Mulai

REG_DWORD

Ketika diatur ke 1 (aktif), sesi Global Logger dimulai lain kali sistem dimulai.

0 = nonaktif, 1=aktif

BufferSize

REG_DWORD

Menentukan ukuran setiap buffer (dalam KB). Nilai defaultnya adalah 0x40 (64 KB).

ClockType

REG_DWORD

Menentukan timer yang digunakan untuk melacak stempel waktu pesan.

Dimulai dengan Windows Vista, nilai defaultnya adalah 1. Pada sistem operasi sebelum Windows Vista, nilai defaultnya adalah 2.

1 = Nilai penghitung kinerja (resolusi tinggi)

2 = Timer sistem

3 = Jam siklus CPU

EnableKernelFlags

REG_BINARY

Mengonversi sesi Global Logger menjadi sesi pelacakan NT Kernel Logger dan menentukan peristiwa yang disertakan dalam jejak kernel.

Untuk informasi, lihat Sesi Pencatat Global Boot-time.

FileCounter

REG_DWORD

Menyimpan jumlah file log jejak peristiwa yang dihasilkan oleh sesi Global Logger.

Sistem menaikkan nilai ini hingga mencapai nilai FileMax. Kemudian, ia mengatur ulang nilai ke 0.

Penghitung ini mencegah sistem menimpa file log jejak Global Logger.

FileMax

REG_DWORD

Menentukan jumlah maksimum file log jejak peristiwa yang diizinkan pada sistem.

Ketika jumlah log jejak mencapai maksimum yang ditentukan, sistem mulai menimpa log, dimulai dengan yang terlama.

Nilai default adalah 0, yang berarti bahwa tidak ada maksimum.

FileName

REG_SZ

Jalur (opsional) dan nama file file log jejak peristiwa. Defaultnya adalah %SystemRoot%\System32\LogFiles\WMI\trace.log.

FlushTimer

REG_DWORD

Menentukan seberapa sering (dalam detik) buffer pelacakan dibersihkan secara paksa. Flush paksa ini selain flush otomatis yang terjadi setiap kali buffer penuh dan ketika sesi pelacakan berhenti.

Nilai default adalah 0. Secara default, buffer dibersihkan hanya ketika penuh.

Waktu flush minimum adalah 1 detik.

LogFileMode

REG_DWORD

Menentukan opsi sesi log.

Hanya didukung di Windows Vista dan versi Windows yang lebih baru.

MaximumBuffers

REG_DWORD

Menentukan jumlah maksimum buffer yang dapat dialokasikan untuk sesi. Nilai defaultnya adalah 0x19 (25).

MaximumFileSize

REG_DWORD

Menentukan ukuran maksimum file log jejak peristiwa. Secara default, tidak ada ukuran file maksimum.

MinimumBuffers

REG_DWORD

Menentukan jumlah buffer yang dialokasikan saat sesi dimulai. Nilai defaultnya adalah 0x3.

Status

REG_DWORD

Menyimpan kode pengembalian dari upaya untuk memulai sesi pelacakan Global Logger.

Jika sesi gagal dimulai, nilai entri ini adalah kode kesalahan Win32. Jika sesi dimulai, nilai entri ini ERROR_SUCCESS.

Entri registri yang Anda buat ini tetap berada di registri dan efektif sampai Anda menghapusnya atau mengubah nilainya. Oleh karena itu, setelah sesi Global Logger berjalan, gunakan perintah tracelog -remove GlobalLogger untuk mengatur nilai entri Mulai ke 0 dan hapus entri registri Global Logger lainnya. Jika tidak, sesi Global Logger berjalan setiap kali Anda menghidupkan ulang komputer, dan file log yang dihasilkan dapat tumbuh sangat besar.

Konstanta Mode Pengelogan

Tabel berikut menampilkan nilai yang valid untuk entri registri LogFileMode di subkunci HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger . Entri ini digunakan untuk mengatur opsi untuk sesi pelacakan Global Logger, termasuk untuk sesi pelacakan real time, sesi pelacakan privat, pengelogan melingkar, dan buffering (tanpa log). Entri registri ini hanya didukung di Windows Vista dan versi Windows yang lebih baru.

Entri registri ini sesuai dengan anggota LogFileMode dari struktur EVENT_TRACE_PROPERTIES. Nilainya sesuai dengan Konstanta Mode Pengelogan. Struktur EVENT_TRACE_PROPERTIES dan Konstanta Mode Pengelogan dijelaskan dalam dokumentasi Microsoft Windows SDK.

Tabel ini ditampilkan di sini untuk memperlihatkan nilai heksadesimal konstanta. Gunakan nilai-nilai ini atau jumlah nilai ini untuk mewakili konstanta dalam entri registri LogFileMode .

Nilai Terus-menerus Deskripsi

0x0

EVENT_TRACE_FILE_MODE_NONE

Tidak ada file log jejak peristiwa yang dibuat.

0x1

EVENT_TRACE_FILE_MODE_SEQUENTIAL

File log jejak peristiwa berurutan.

0x2

EVENT_TRACE_FILE_MODE_CIRCULAR

File log jejak peristiwa melingkar.

0x4

EVENT_TRACE_FILE_MODE_APPEND

Tambahkan pesan pelacakan ke file log yang ada. Mode ini hanya valid dengan file berurutan.

0x8

EVENT_TRACE_FILE_MODE_NEWFILE

Buat file log jejak peristiwa baru setiap kali file yang ada mencapai nilai entri MaximumFileSize (lihat tabel di atas).

0x20

EVENT_TRACE_FILE_MODE_PREALLOCATE

Mencadangkan ruang untuk file log jejak peristiwa.

Hanya berlaku dengan EVENT_TRACE_FILE_MODE_SEQUENTIAL atau EVENT_TRACE_FILE_MODE_CIRCULAR, dan tidak valid dengan EVENT_TRACE_FILE_MODE_NEWFILE.

0x40

EVENT_TRACE_NONSTOPPABLE_MODE

Panggilan ke StopTrace tidak menghentikan sesi pelacakan.

Fitur ini mencegah pengguna menghentikan sesi pelacakan yang diperlukan sistem untuk diagnosis dan penyetelan.

0x100

EVENT_TRACE_REAL_TIME_MODE

Menentukan sesi pelacakan real time.

0x200

EVENT_TRACE_DELAY_OPEN_FILE_MODE

Hanya untuk penggunaan internal.

0x400

EVENT_TRACE_BUFFERING_MODE

Peristiwa dipertahankan di buffer. Mereka tidak pernah ditulis ke file log atau dikirimkan ke konsumen jejak.

0x800

EVENT_TRACE_PRIVATE_LOGGER_MODE

Menentukan sesi pelacakan privat. Bendera ini tidak valid untuk sesi pelacakan Global Logger.

0x1000

EVENT_TRACE_ADD_HEADER_MODE

Hanya untuk penggunaan internal.

0x2000

EVENT_TRACE_USE_KBYTES_FOR_SIZE

Menginterpretasikan nilai MaximumFileSize dalam KB, bukan MB.

0x4000

EVENT_TRACE_USE_GLOBAL_SEQUENCE

Menghasilkan nomor urut global untuk melacak pesan. Angka-angka ini unik untuk semua sesi pelacakan di komputer.

Secara default, pesan pelacakan tidak memiliki nomor urut apa pun.

0x8000

EVENT_TRACE_USE_LOCAL_SEQUENCE

Menghasilkan nomor urutan lokal untuk melacak pesan. Angka-angka ini unik dalam sesi pelacakan.

Secara default, pesan pelacakan tidak memiliki nomor urut apa pun.

0x10000

EVENT_TRACE_RELOG_MODE

Hanya untuk penggunaan internal.

0x80000

EVENT_TRACE_KD_FILTER_MODE

Mengalihkan pesan jejak ke debugger kernel dan mengatur ukuran buffer jejak menjadi 3 KB, ukuran buffer maksimum untuk debugger.

0x1000000

EVENT_TRACE_MODE_RESERVED

Tidak valid untuk sesi pelacakan Global Logger.

0x01000000

EVENT_TRACE_USE_PAGED_MEMORY

Alokasikan buffer sesi pelacakan dari memori yang dapat di-pageable. Secara default, buffer dialokasikan dari memori yang tidak dapat dihapus.