Aktivitas Pengelogan
Secara default, kesalahan dan peringatan yang dihasilkan oleh Driver Microsoft untuk PHP untuk SQL Server tidak dicatat ke log sistem PHP. Topik ini membahas cara mengonfigurasi aktivitas pengelogan driver. Untuk informasi selengkapnya tentang cara mengonfigurasi pengaturan penanganan kesalahan PHP yang tidak spesifik untuk driver, lihat dokumentasi PHP.
Aktivitas Pengelogan Menggunakan Driver PDO_SQLSRV
Satu-satunya konfigurasi pengelogan yang tersedia khusus untuk driver PDO_SQLSRV adalah entri pdo_sqlsrv.log_severity dalam file php.ini.
Tambahkan yang berikut ini di akhir file php.ini Anda:
[pdo_sqlsrv]
pdo_sqlsrv.log_severity = <number>
log_severity bisa menjadi salah satu nilai berikut:
Nilai | Deskripsi |
---|---|
0 | Pengelogan dinonaktifkan (adalah default jika tidak ada yang didefinisikan). |
-1 | Menentukan bahwa kesalahan, peringatan, dan pemberitahuan dicatat. |
1 | Menentukan bahwa kesalahan dicatat. |
2 | Menentukan bahwa peringatan dicatat. |
4 | Menentukan bahwa pemberitahuan dicatat. |
Informasi pengelogan ditambahkan ke file phperrors.log.
PHP membaca file konfigurasi pada inisialisasi dan menyimpan data dalam cache; ini juga menyediakan API untuk memperbarui pengaturan ini dan langsung digunakan, dan ditulis ke file konfigurasi. API ini memungkinkan skrip aplikasi untuk mengubah pengaturan bahkan setelah inisialisasi PHP.
Aktivitas Pengelogan Menggunakan Driver SQLSRV
Untuk mengaktifkan pengelogan, Anda dapat menggunakan fungsi sqlsrv_configure atau Anda dapat mengubah file php.ini. Anda dapat mencatat aktivitas pada inisialisasi, koneksi, pernyataan, atau fungsi kesalahan. Anda juga dapat menentukan apakah akan mencatat kesalahan, peringatan, pemberitahuan, atau ketiganya.
Catatan
Anda dapat mengonfigurasi lokasi file log dalam file php.ini. Lihat dokumentasi PHP untuk detail selengkapnya.
Mengaktifkan Pengelogan
Anda dapat mengaktifkan pengelogan dengan menggunakan fungsi sqlsrv_configure untuk menentukan nilai untuk pengaturan LogSubsystems . Misalnya, baris kode berikut mengonfigurasi driver untuk mencatat aktivitas pada koneksi:
sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN);
Tabel berikut ini menjelaskan konstanta yang dapat digunakan sebagai nilai untuk pengaturan LogSubsystems :
Nilai (bilangan bulat setara dalam tanda kurung) | Deskripsi |
---|---|
SQLSRV_LOG_SYSTEM_ALL (-1) | Mengaktifkan pengelogan semua subsistem. |
SQLSRV_LOG_SYSTEM_OFF (0) | Menonaktifkan pengelogan. Ini adalah default. |
SQLSRV_LOG_SYSTEM_INIT (1) | Mengaktifkan pengelogan aktivitas inisialisasi. |
SQLSRV_LOG_SYSTEM_CONN (2) | Mengaktifkan pengelogan aktivitas koneksi. |
SQLSRV_LOG_SYSTEM_STMT (4) | Mengaktifkan pengelogan aktivitas pernyataan. |
SQLSRV_LOG_SYSTEM_UTIL (8) | Mengaktifkan pengelogan aktivitas fungsi kesalahan (seperti handle_error dan handle_warning). |
Anda dapat mengatur lebih dari satu nilai pada satu waktu untuk pengaturan LogSubsystems dengan menggunakan operator OR logis (|). Misalnya, baris kode berikut mengaktifkan pengelogan aktivitas pada koneksi dan pernyataan:
sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN | SQLSRV_LOG_SYSTEM_STMT);
Anda juga dapat mengaktifkan pengelogan dengan menentukan nilai bilangan bulat untuk pengaturan LogSubsystems dalam file php.ini. Misalnya, menambahkan baris berikut ke bagian [sqlsrv]
file php.ini mengaktifkan pengelogan aktivitas koneksi:
sqlsrv.LogSubsystems = 2
Dengan menambahkan nilai bilangan bulat bersama-sama, Anda dapat menentukan lebih dari satu opsi pada satu waktu. Misalnya, menambahkan baris berikut ke [sqlsrv]
bagian file php.ini mengaktifkan pengelogan aktivitas koneksi dan pernyataan:
sqlsrv.LogSubsystems = 6
Kesalahan Pengelogan, Peringatan, dan Pemberitahuan
Setelah mengaktifkan pengelogan, Anda harus menentukan apa yang harus dicatat. Anda dapat mencatat satu atau beberapa hal berikut: kesalahan, peringatan, dan pemberitahuan. Misalnya, baris kode berikut menentukan bahwa hanya peringatan yang dicatat:
sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_WARNING);
Catatan
Pengaturan default untuk LogSeverity adalah SQLSRV_LOG_SEVERITY_ERROR. Jika pengelogan diaktifkan dan tidak ada pengaturan untuk LogSeverity yang ditentukan, hanya kesalahan yang dicatat.
Tabel berikut ini menjelaskan konstanta yang dapat digunakan sebagai nilai untuk pengaturan LogSeverity :
Nilai (bilangan bulat setara dalam tanda kurung) | Deskripsi |
---|---|
SQLSRV_LOG_SEVERITY_ALL (-1) | Menentukan bahwa kesalahan, peringatan, dan pemberitahuan dicatat. |
SQLSRV_LOG_SEVERITY_ERROR (1) | Menentukan bahwa kesalahan dicatat. Ini adalah default. |
SQLSRV_LOG_SEVERITY_WARNING (2) | Menentukan bahwa peringatan dicatat. |
SQLSRV_LOG_SEVERITY_NOTICE (4) | Menentukan bahwa pemberitahuan dicatat. |
Anda dapat mengatur lebih dari satu nilai pada satu waktu untuk pengaturan LogSeverity dengan menggunakan operator OR logis (|). Misalnya, baris kode berikut menentukan bahwa kesalahan dan peringatan harus dicatat:
sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_ERROR | SQLSRV_LOG_SEVERITY_WARNING);
Catatan
Menentukan nilai untuk pengaturan LogSeverity tidak mengaktifkan pengelogan. Anda harus mengaktifkan pengelogan dengan menentukan nilai untuk pengaturan LogSubsystems , lalu menentukan tingkat keparahan apa yang dicatat dengan mengatur nilai untuk LogSeverity.
Anda juga dapat menentukan pengaturan untuk pengaturan LogSeverity dengan menggunakan nilai bilangan bulat dalam file php.ini. Misalnya, menambahkan baris berikut ke bagian [sqlsrv]
file php.ini memungkinkan pengelogan peringatan saja:
sqlsrv.LogSeverity = 2
Dengan menambahkan nilai bilangan bulat bersama-sama, Anda dapat menentukan lebih dari satu opsi pada satu waktu. Misalnya, menambahkan baris berikut ke [sqlsrv]
bagian file php.ini memungkinkan pengelogan kesalahan dan peringatan:
sqlsrv.LogSeverity = 3
Lihat Juga
Panduan Pemrograman untuk Driver Microsoft untuk PHP untuk SQL Server