Petua pengendalian ralat PHP 7: Cara menggunakan fungsi set_error_handler untuk log ralat ke fail log

PHPz
Lepaskan: 2023-08-01 20:44:01
asal
1118 orang telah melayarinya

Kemahiran pengendalian ralat PHP 7: Cara menggunakan fungsi set_error_handler untuk merekod ralat pada fail log

Semasa proses pembangunan, adalah sangat penting untuk menangkap dan merekod ralat dengan tepat. PHP menyediakan pelbagai mekanisme pengendalian ralat, salah satunya adalah menggunakan fungsi set_error_handler untuk menyesuaikan pengendali ralat. Artikel ini akan memperkenalkan cara menggunakan fungsi set_error_handler untuk merekodkan ralat PHP pada fail log supaya kami boleh menjejak dan menyelesaikan masalah dengan lebih baik.

1. Pengenalan kepada fungsi set_error_handler
Fungsi set_error_handler digunakan untuk menetapkan fungsi pengendalian ralat yang ditentukan pengguna. Fungsi ini dipanggil apabila PHP menghadapi ralat, memberikannya maklumat ralat sebagai parameter. Kita boleh menyesuaikan proses pengendalian ralat melalui fungsi ini.

Berikut ialah sintaks asas fungsi set_error_handler:

bool set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )

Antaranya, parameter $errorable handler ialah parameter $errorable handler Selain itu, parameter $error_types ialah parameter pilihan yang digunakan untuk menentukan jenis ralat Jika tidak dinyatakan, nilai lalai E_ALL | E_STRICT akan digunakan, iaitu, semua dan ralat ketat akan diproses.

2. Langkah-langkah merekod ralat ke fail log

  1. Buat fail log
    Pertama, kita perlu mencipta fail log untuk menyimpan maklumat ralat. Anda boleh menamakan fail log "error.log" atau mana-mana nama lain yang anda suka.
  2. Buat fungsi pengendalian ralat tersuai
    Seterusnya, kita perlu mencipta fungsi pengendalian ralat tersuai untuk menulis maklumat ralat pada fail log. Berikut ialah contoh fungsi pengendalian ralat:

fungsi custom_error_handler($error_number, $error_message, $error_file, $error_line) {

// 将错误信息写入日志文件
$log_message = "[" . date('Y-m-d H:i:s') . "] " . "Error: " . $error_message . " in " . $error_file . " on line " . $error_line . "
Salin selepas log masuk
Salin selepas log masuk

";

error_log($log_message, 3, 'error.log');
Salin selepas log masuk
Salin selepas log masuk

}

Dalam contoh fail dan nombor baris ini, kita akan digabungkan menjadi mesej log dan fungsi error_log digunakan untuk menulis mesej ke fail log

  1. Tetapkan fungsi pengendalian ralat tersuai menggunakan fungsi set_error_handler
    Akhir sekali, kami akan menggunakan fungsi set_error_handler untuk menetapkan fungsi pengendalian ralat tersuai. . Tetapkan sebagai pengendali ralat global. Fungsi ini perlu digunakan di mana-mana ralat perlu ditangkap sepanjang aplikasi Hanya panggil fungsi set_error_handler pada entri program utama, seperti yang ditunjukkan di bawah:
set_error_handler('custom_error_handler' );

Sekarang, apabila PHP menghadapi ralat, ia akan memanggil fungsi custom_error_handler yang kami tentukan dan menghantar maklumat ralat kepadanya. Kemudian, maklumat ralat akan ditulis ke fail log

3. Kod sampel lengkap yang menunjukkan cara menggunakan fungsi set_error_handler untuk log ralat ke fail log:

// Cipta fungsi pengendalian ralat tersuai
function custom_error_handler($error_number, $error_message, $error_file, $error_line ) {

// 将错误信息写入日志文件
$log_message = "[" . date('Y-m-d H:i:s') . "] " . "Error: " . $error_message . " in " . $error_file . " on line " . $error_line . "
Salin selepas log masuk
Salin selepas log masuk

";

error_log($log_message, 3, 'error.log');
Salin selepas log masuk
Salin selepas log masuk

}

//Tetapkan fungsi pengendalian ralat tersuai

set_error_handler('custom_error_handler');

// Sengaja mencetuskan ralat

echo $undefined ralat trigger_error("Ini adalah ralat ujian", E_USER_NOTICE);
?>

Dalam kod di atas, kami mula-mula mencipta fungsi pengendalian ralat tersuai custom_error_handler. Kemudian, gunakan fungsi set_error_handler untuk menetapkan fungsi sebagai pengendali ralat global. Seterusnya, proses pengendalian ralat ditunjukkan dengan menggemakan pembolehubah yang tidak ditentukan dan mencetuskan ralat tersuai.

4. Kesimpulan

Dengan menggunakan fungsi set_error_handler, kami boleh merekodkan maklumat ralat PHP ke dalam fail log untuk memudahkan pengesanan ralat dan penyelesaian masalah kami yang seterusnya. Kaedah ini sangat berguna untuk pasukan pembangunan dan boleh meningkatkan kecekapan pembangunan dan kualiti kod.

Ingat bahawa pengendalian ralat adalah bahagian yang sangat penting Mekanisme pengendalian ralat yang baik boleh meningkatkan kestabilan dan kebolehpercayaan aplikasi. Saya harap artikel ini dapat membantu semua orang lebih memahami dan menggunakan kemahiran pengendalian ralat PHP 7.

Atas ialah kandungan terperinci Petua pengendalian ralat PHP 7: Cara menggunakan fungsi set_error_handler untuk log ralat ke fail log. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!