在php中,錯誤日誌用於記錄程式運行時的出錯訊息,可以幫助開發人員或管理人員查看系統是否有問題;開發人員和維護人員也可以利用錯誤日誌對系統進行偵錯和維護。
本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦
php錯誤日誌有什麼用
錯誤日誌用於記錄程式運行時的出錯訊息。
錯誤日誌的記錄,可以幫助開發人員或管理者查看系統是否有問題。程式設計人員和維護人員等可以利用錯誤日誌對系統進行偵錯和維護。
如果需要將程式中的錯誤報告寫入錯誤日誌中,只要在 PHP 的設定檔中,將設定項 log_errors 開啟即可。
錯誤報告預設會記錄到 Web 伺服器的日誌檔案裡,例如記錄到 Apache 伺服器的錯誤日誌檔案 error.log 中。當然也可以將錯誤日誌記錄到指定的檔案中。
使用指定的文件記錄錯誤報告日誌
如果想使用自己指定的文件記錄錯誤日誌,一定要確保這個文件存放在文檔根目錄之外,以減少遭到攻擊的可能。並且該檔案一定要讓 PHP 腳本具有寫入權限。假設在 Linux 作業系統中,將 /usr/local/ 目錄下的 error.log 文件作為錯誤日誌文件,並設定 Web 伺服器進程使用者俱有寫入的權限。然後在 PHP 的設定檔中,將 error_log 指令的值設定為這個錯誤日誌檔案的絕對路徑。
需要將 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 // 指定产生的错误报告写入的日志文件位置
PHP 的設定檔按上面的方式設定完成以後,並重新啟動 Web 伺服器。這樣,在執行 PHP 的任何腳本檔案時,產生的所有錯誤報告都不會在瀏覽器中顯示,而是記錄在自己指定的錯誤日誌 E:/php_log/php_error.log 中。
此外,不僅可以記錄滿足 error_reporting 所定義規則的所有錯誤,還可以使用 PHP 中的 error_log() 函數把錯誤訊息傳送到 web 伺服器的錯誤日誌或到一個檔案裡。
error_log() 函數的原型如下所示:
error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] ) : bool
參數說明如下:
範例:
以登入 Mysql 資料庫為例,當登入失敗時記錄錯誤訊息。
<?php $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db"); if (!$link) { error_log('Mysql 数据库连接失败!',0); exit(); } ?>
運行上面的程式碼,會在php.ini 設定檔中error_log 一項所設定的目錄中產生對應的錯誤日誌文件,檔案內容如下:
[08-May-2020 13:17:31 PRC] PHP Warning: mysqli_connect(): (HY000/1045): Access denied for user 'my_user'@'localhost' (using password: YES) in D:\WWW\index.php on line 2 [08-May-2020 13:17:31 PRC] Mysql 数据库连接失败!
推薦學習:《 PHP影片教學》
以上是php錯誤日誌有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!