Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menyediakan log ralat dalam php

Bagaimana untuk menyediakan log ralat dalam php

青灯夜游
Lepaskan: 2023-03-11 17:52:02
asal
2568 orang telah melayarinya

Kaedah tetapan: Buka fail php.ini dan tetapkan "error_reporting=E_ALL", "display_errors=Off", "log_errors=On", "error_log = E:/php_log/php_error.log", dsb.

Bagaimana untuk menyediakan log ralat dalam php

Persekitaran pengendalian tutorial ini: sistem windows7, versi PHP7.1, komputer DELL G3

Untuk pembangun PHP, sekali tertentu Bila projek itu mula digunakan, pilihan display_errors dalam fail konfigurasi php.ini hendaklah dimatikan serta-merta untuk mengelakkan daripada diserang oleh penggodam disebabkan laluan, sambungan pangkalan data, jadual data dan maklumat lain yang didedahkan oleh ralat ini. Tetapi selepas mana-mana projek digunakan, ralat pasti akan berlaku, jadi bagaimana untuk merekodkan beberapa laporan ralat yang berguna kepada pembangun?

Kami boleh log laporan ralat dalam fail teks berasingan. Rakaman log ralat boleh membantu pembangun atau pengurus menyemak sama ada terdapat masalah dengan sistem. Jika anda perlu menulis laporan ralat dalam program ke log ralat, hanya hidupkan log_errors item konfigurasi dalam fail konfigurasi PHP.

Laporan ralat akan dilog masuk ke fail log pelayan web secara lalai, contohnya, ke fail log ralat error.log pelayan Apache. Sudah tentu, log ralat juga boleh direkodkan ke fail tertentu.

Gunakan fail yang ditentukan untuk merekod log laporan ralat

Jika anda ingin menggunakan fail anda sendiri yang ditentukan untuk merekodkan log ralat, jadi pastikan untuk memastikan bahawa fail ini disimpan di luar akar dokumen untuk mengurangkan kemungkinan diserang. Dan fail mesti memberi kebenaran menulis skrip PHP. Andaikan bahawa dalam sistem pengendalian Linux, fail error.log dalam direktori /usr/local/ digunakan sebagai fail log ralat dan pengguna proses pelayan web ditetapkan untuk mempunyai kebenaran menulis. Kemudian dalam fail konfigurasi PHP, tetapkan nilai arahan error_log kepada laluan mutlak fail log ralat.

Anda perlu membuat pengubahsuaian berikut pada arahan konfigurasi dalam php.ini:

error_reporting  =  E_ALL                             // 将会向PHP报告发生的每个错误  
display_errors = Off                                     // 不显示满足上条 指令所定义规则的所有错误报告  
log_errors = On                                           // 决定日志语句记录的位置  
log_errors_max_len = 1024                         // 设置每个日志项的最大长度  
error_log = E:/php_log/php_error.log         // 指定产生的错误报告写入的日志文件位置
Salin selepas log masuk

Selepas fail konfigurasi PHP ditetapkan seperti di atas, mulakan semula pelayan web. Dengan cara ini, apabila melaksanakan sebarang fail skrip PHP, semua laporan ralat yang dijana tidak akan dipaparkan dalam penyemak imbas, tetapi akan direkodkan dalam log ralat E:/php_log/php_error.log yang ditentukan oleh anda.

Selain itu, bukan sahaja semua ralat yang memenuhi peraturan yang ditakrifkan oleh error_reporting boleh dilog, tetapi fungsi error_log() dalam PHP juga boleh digunakan untuk menghantar maklumat ralat ke log ralat pelayan web atau ke sebuah fail.

Prototaip fungsi error_log() adalah seperti berikut:

error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] ) : bool
Salin selepas log masuk

Penerangan parameter adalah seperti berikut:

  • $ mesej: perlu direkodkan Mesej ralat;
  • $message_type: Tetapkan di mana ralat harus dihantar. Jenis mesej yang mungkin adalah seperti berikut:
    • 0: (Nilai lalai) Hantar $mesej ke log sistem PHP, menggunakan mekanisme pengelogan sistem pengendalian atau fail, bergantung pada error_log yang ditetapkan dalam fail konfigurasi ;
    • 1: Hantar $mesej ke alamat e-mel yang ditetapkan oleh parameter $destination. Parameter keempat $extra_headers hanya akan digunakan dalam jenis ini; Aksara $message tidak akan dianggap sebagai baris baharu secara lalai
    • 4: Hantar $message terus kepada pengendali log SAPI.
    • $destination: Destination, iaitu destinasi yang mesej ralat dihantar. Maksudnya diterangkan di atas dan ditentukan oleh parameter $message_type; Digunakan apabila $message_type ditetapkan kepada 1. Jenis mesej ini menggunakan fungsi terbina dalam yang sama mel().
  • [Contoh] Ambil log masuk ke pangkalan data Mysql sebagai contoh, dan rekod mesej ralat apabila log masuk gagal.
  • Menjalankan kod di atas akan menghasilkan fail log ralat yang sepadan dalam direktori yang ditetapkan oleh item error_log dalam fail konfigurasi php.ini Kandungan fail adalah seperti berikut:

Pembelajaran yang disyorkan: "

Tutorial Video PHP
<?php
    $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
    if (!$link) {
        error_log(&#39;Mysql 数据库连接失败!&#39;,0);
        exit();
    }
?>
Salin selepas log masuk
"

Atas ialah kandungan terperinci Bagaimana untuk menyediakan log ralat dalam php. 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