Dengan perkembangan teknologi Internet, PHP telah menjadi bahasa pengaturcaraan sebelah pelayan yang sangat popular. Walau bagaimanapun, apabila menulis kod PHP, pembangun pasti akan membuat beberapa ralat kerana pelbagai sebab. Sebaik sahaja ralat ditemui, cara cepat mencari masalah dan membaikinya menjadi isu yang sangat kritikal. Artikel ini akan menerangkan cara mencari dan menyelesaikan ralat pengaturcaraan PHP dengan lebih cepat dengan merekodkan log ralat.
1. Tahap ralat PHP
Ralat PHP dibahagikan kepada tahap yang berbeza, termasuk:
- E_ERROR: ralat maut yang akan menyebabkan skrip berhenti berjalan
- E_WARNING: amaran, menggesa pembangun untuk memberi perhatian;
- E_NOTICE: menggesa pembangun untuk memberi perhatian kepada beberapa masalah yang tidak semestinya membawa maut; 🎜>
E_CORE_ERROR: Ralat maut yang berlaku semasa PHP bermula -
- Semasa proses pembangunan skrip PHP, kita harus cuba mengelakkan ralat maut atau sintaks.
2. Mekanisme pengendalian ralat
PHP menyediakan beberapa fungsi untuk membantu pembangun menangani ralat, seperti:
error_reporting(): Tetapkan ralat PHP Tahap tangkapan
set_error_handler(): Tetapkan fungsi pengendalian ralat; - trigger_error(): Ralat yang dijana oleh manusia.
-
- 3. Cara merekod log ralat
Dalam pembangunan sebenar, kami boleh merekodkan maklumat ralat ke dalam fail log untuk membantu kami mencari ralat dengan lebih cepat. PHP menyediakan fungsi log ralat terbina dalam error_log(), yang boleh digunakan untuk merekod maklumat ralat ke fail tertentu Sintaks adalah seperti berikut:
error_log('message',message_type,destination,extra_headers) ;
Antaranya, mesej ralat message_type menentukan cara untuk merekodkan mesej ralat, seperti menghantarnya melalui e-mel destinasi menentukan laluan fail log menentukan beberapa maklumat tambahan;
Selain fungsi error_log() terbina dalam, kami juga boleh menggunakan rangka kerja perpustakaan pemprosesan log lain, seperti Monolog, Log4php, dsb.
Sebagai contoh, apabila menggunakan Monolog, kita boleh merekod ralat seperti ini:
require_once __DIR__ . '/vendor/autoload.php';
use MonologLogger;
use MonologHandlerStreamHandler;
// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
// add records to the log
$log->warning('Foo');
$log->error('Bar');
Dalam kod di atas, kita mula-mula mencipta saluran log dan kemudian menentukan laluan fail rekod log, di mana Logger: :WARNING menunjukkan bahawa kami hanya merekodkan maklumat tahap amaran dan ke atas. Akhir sekali, kami log masuk melalui $log->warning('Foo') dan $log->error('Bar').
4. Aplikasi Praktikal
Dengan merekodkan log ralat, kami boleh menemui dan menyelesaikan ralat pengaturcaraan PHP tepat pada masanya. Di bawah, kami memperkenalkan beberapa senario aplikasi praktikal.
Kekalkan kesihatan kod
- Selepas laman web dalam talian dan berjalan, kita perlu sentiasa memberi perhatian kepada status berjalan Jika berlaku kelainan, kita boleh mencari dan membaiki masalah dalam masa. Dalam proses ini, merekodkan log ralat adalah sangat penting. Sebaik sahaja ralat berlaku, kami boleh mencari masalah dengan cepat melalui log.
Isu penyahpepijatan
- Apabila dalam fasa pembangunan dan ujian, pengelogan boleh membantu kami mencari masalah kod dengan lebih cepat. Sebagai contoh, dalam persekitaran pembangunan tempatan, kita boleh mencetak log ke konsol supaya kita boleh melihatnya dalam masa nyata.
Pengoptimuman Prestasi
- Selain membantu kami mencari ralat kod, pengelogan juga boleh membantu kami memahami kesesakan prestasi aplikasi kami. Mengambil Monolog sebagai contoh, dengan menyediakan berbilang Pengendali, kami boleh mengeluarkan maklumat log ke konsol dan fail pada masa yang sama. Apabila masa tindak balas aplikasi melebihi ambang tertentu, kami dapat memahami kesesakan prestasi melalui log.
Ringkasnya, ralat pengaturcaraan PHP pasti akan berlaku semasa proses pembangunan, tetapi kita boleh mencari dan menyelesaikan masalah dengan lebih cepat dengan merekodkan log ralat. Apabila merekodkan log ralat, kita boleh memilih untuk menggunakan fungsi error_log() terbina dalam PHP atau beberapa rangka kerja perpustakaan pemprosesan log. Tidak kira kaedah mana yang digunakan, tahap penangkapan ralat yang sesuai dan fungsi pengendalian pengecualian hendaklah ditetapkan mengikut situasi sebenar.
Atas ialah kandungan terperinci Ralat pengaturcaraan PHP: Bagaimana untuk mencari masalah dengan lebih cepat dengan ralat log. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!