Fungsi log fungsi PHP
Apabila membangunkan aplikasi PHP, kita biasanya menghadapi banyak situasi yang memerlukan pengelogan. Sebagai contoh, pengelogan amat penting apabila kita perlu menyahpepijat atur cara, menyelesaikan masalah atau menjejaki tingkah laku pengguna. Dalam PHP, amalan terbaik untuk pengelogan adalah menggunakan fungsi log. Artikel ini akan memperkenalkan cara merekod log, cara melanjutkan, menggunakan dan mengkonfigurasi fungsi log.
1. Pengenalan kepada fungsi log
Dalam PHP, sistem menyediakan fungsi log, dan kita boleh menggunakan fungsi ini untuk merekod log. Fungsi log PHP termasuk:
Dalam aplikasi praktikal, kami biasanya menggunakan fungsi error_log() untuk pengelogan.
2. Gunakan fungsi error_log() untuk merekod log
Sintaks asas fungsi error_log() adalah seperti berikut:
bool error_log ( string $message [, int $message_type [, string $destination [, string $extra_headers ]]] )
Antaranya:
$mesej: untuk menulis Mesej yang dimasukkan ke dalam log.
$message_type: Boleh terdiri daripada tiga jenis berikut:
$destination: Apabila $message_type ialah 1, parameter ini menentukan fail destinasi atau alamat e-mel untuk menghantar mesej apabila $message_type ialah 0, parameter ini diabaikan apabila $message_type ialah 2 , ini parameter menentukan jenis log dalaman sistem.
$extra_headers: Apabila $message_type ialah 1, parameter ini menentukan maklumat pengepala e-mel.
Biasanya kami akan log masuk fail, gunakan kod berikut untuk menulis mesej ke fail log:
$logfile = '/path/to/logfile.log'; error_log($message, 3, $logfile);
Ini akan menulis $message to $path/to/logfile.log file tengah .
3. Fungsi log lanjutan
PHP menyediakan fungsi yang dipanggil set_error_handler(), yang melaluinya kami boleh melanjutkan fungsi pengelogan untuk memudahkan penggunaan dan mengurus log. Sintaks asas fungsi
set_error_handler() adalah seperti berikut:
mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )
Antaranya:
$error_handler: fungsi pengendalian ralat tersuai, yang boleh menjadi penutup atau fungsi biasa.
$error_types: Pilihan, nilai lalai ialah E_ALL | E_STRICT, jenis ralat ditentukan, hanya ralat jenis ralat yang ditentukan akan dihantar ke fungsi $error_handler untuk diproses.
Kod sampel adalah seperti berikut:
$logfile = '/path/to/logfile.log'; function my_error_handler($errno, $errstr, $errfile, $errline) { $message = "$errno: $errstr in $errfile on line $errline"; error_log($message, 3, $logfile); } set_error_handler('my_error_handler');
Ini akan menulis ralat PHP pada fail $path/to/logfile.log.
4. Gunakan Monolog untuk melanjutkan pengelogan
Kaedah pengelogan lain ialah menggunakan Monolog perpustakaan pihak ketiga. Monolog ialah perpustakaan pengelogan PHP yang popular yang boleh merakam pelbagai jenis log dengan mudah dan menyediakan berbilang kaedah penghantaran dan pemformatan log.
Untuk menggunakan Monolog, anda perlu memasang perpustakaan Monolog terlebih dahulu. Arahan untuk memasang Monolog menggunakan Composer adalah seperti berikut:
composer require monolog/monolog
Selepas pemasangan selesai, kita boleh menggunakan kod berikut untuk log:
use MonologLogger; use MonologHandlerStreamHandler; $log = new Logger('mylog'); $log->pushHandler(new StreamHandler($logfile, Logger::WARNING)); $log->error('This is an error message.');
Ini akan menulis maklumat log ke $path /to/logfile.log fail tengah.
5. Ringkasan
Pengelogan adalah salah satu fungsi asas yang perlu dilaksanakan oleh setiap aplikasi. Dalam PHP, kita boleh menggunakan fungsi log error_log(), syslog(), openlog() dan closelog() yang disediakan oleh sistem untuk pengelogan. Pada masa yang sama, kami juga boleh menggunakan perpustakaan pihak ketiga seperti Monolog untuk melanjutkan fungsi pengelogan. Sudah tentu, untuk melaksanakan fungsi yang lebih tersuai dan kompleks, kita boleh menggunakan fungsi set_error_handler() untuk menyesuaikan cara log diproses untuk memenuhi keperluan kita sendiri. Dalam aplikasi sebenar, anda harus memilih kaedah pembalakan yang paling sesuai mengikut keperluan sebenar.
Atas ialah kandungan terperinci Log fungsi fungsi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!