Log fungsi fungsi PHP

WBOY
WBOYasal
2023-05-18 15:01:541985semak imbas

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:

  1. error_log(): digunakan untuk merekod maklumat ralat.
  2. syslog(): digunakan untuk menulis mesej pada log sistem.
  3. openlog(): digunakan untuk membuka sambungan log dalam sistem.
  4. closelog(): digunakan untuk menutup sambungan log.
  5. syslog-ng: Digunakan untuk merekodkan log sistem dan menyediakan alatan pengurusan konfigurasi ia menyokong penghantaran log melalui berbilang protokol seperti TCP/IP, UDP, TCP, SSL, dll.

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:

  • 0: Nilai lalai, menulis mesej ke log ralat PHP.
  • 1: Hantar mesej ke fail atau alamat e-mel yang ditentukan.
  • 2: Tulis mesej ke log dalaman sistem.

$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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn