PHP Error 和 Logging 函數(shù)-7.5PHP 參考手冊(cè)

閱讀 ?·? 發(fā)布日期 2019-06-29 08:38 ?·? admin

PHP Error 簡(jiǎn)介

Error 和 Logging 函數(shù)允許您對(duì)錯(cuò)誤進(jìn)行處理和記錄。

Error 函數(shù)允許用戶定義錯(cuò)誤處理規(guī)則,并修改記錄錯(cuò)誤的方式。

Logging 函數(shù)允許用戶對(duì)應(yīng)用程序進(jìn)行日志記錄,并把日志消息發(fā)送到電子郵件、系統(tǒng)日志或其他的機(jī)器。

error 函數(shù)用于完成錯(cuò)誤處理和日志記錄。

error 函數(shù)允許我們定義自己的錯(cuò)誤處理規(guī)則,并修改錯(cuò)誤記錄方式。

logging 函數(shù)允許我們將消息直接發(fā)送到其他機(jī)器、電郵或系統(tǒng)日志。

error reporting 函數(shù)允許我們錯(cuò)誤的類型和層級(jí)。

安裝

PHP error 函數(shù)是 PHP 核心的一部分。無需安裝即可使用這些函數(shù)。

Runtime 配置

error 函數(shù)的行為受到 php.ini 中設(shè)置的影響。

Errors 和 logging 配置選項(xiàng)如下:

名稱 默認(rèn)值 描述 可修改范圍
error_reporting NULL 設(shè)置錯(cuò)誤報(bào)告級(jí)別(整數(shù)或命名常量) PHP_INI_ALL
display_errors "1"

規(guī)定是否將錯(cuò)誤作為輸出輸出到屏幕,或者對(duì)用戶隱藏。

注意:該特性不應(yīng)在生產(chǎn)系統(tǒng)上使用(僅支持開發(fā))

PHP_INI_ALL
display_startup_errors "0"

即使 display_errors 設(shè)置為開啟, PHP 啟動(dòng)過程中的錯(cuò)誤信息也不會(huì)被顯示。

注釋:強(qiáng)烈建議除了調(diào)試目的以外,將 display_startup_errors 設(shè)置為關(guān)閉。

PHP_INI_ALL
log_errors "0"

設(shè)置是否將腳本運(yùn)行的錯(cuò)誤信息記錄到服務(wù)器錯(cuò)誤日志或者 error_log 之中。

注釋:這是與服務(wù)器相關(guān)的特定配置項(xiàng)。

注釋:在生產(chǎn)系統(tǒng)中,強(qiáng)烈建議你使用錯(cuò)誤日志記錄web站點(diǎn)上顯示的錯(cuò)誤信息。

PHP_INI_ALL
log_errors_max_len "1024"

設(shè)置 log_errors 的最大字節(jié)數(shù)。在 error_log 會(huì)添加有關(guān)錯(cuò)誤源的信息。

默認(rèn)值為 1024,如果設(shè)置為 0 表示不限長(zhǎng)度。

該長(zhǎng)度設(shè)置對(duì)記錄的錯(cuò)誤,顯示的錯(cuò)誤,以及 $php_errormsg 都會(huì)有限制作用。

PHP_INI_ALL
ignore_repeated_errors "0"

規(guī)定是否記錄重復(fù)的錯(cuò)誤信息。

重復(fù)的錯(cuò)誤必須出現(xiàn)在同一個(gè)文件中的同一行代碼上,除非 ignore_repeated_source 設(shè)置為 true。

PHP_INI_ALL
ignore_repeated_source "0"

規(guī)定是否記錄重復(fù)的錯(cuò)誤信息。忽略重復(fù)消息時(shí),也忽略消息的來源。

當(dāng)該設(shè)置開啟時(shí),重復(fù)信息將不會(huì)記錄它是由不同的文件還是不同的源代碼行產(chǎn)生的。

PHP_INI_ALL
report_memleaks "1" 如果該參數(shù)被設(shè)置為 On(默認(rèn)),則會(huì)顯示由 Zend 內(nèi)存管理器偵測(cè)到的內(nèi)存泄露報(bào)告。 PHP_INI_ALL
track_errors "0" 如果開啟,最后一個(gè)錯(cuò)誤將永遠(yuǎn)存在于變量 $php_errormsg 中。 PHP_INI_ALL
html_errors "1" 在錯(cuò)誤信息中關(guān)閉 HTML 標(biāo)簽。
  • PHP_INI_ALL
  • PHP_INI_SYSTEM in PHP <= 4.2.3.
xmlrpc_errors "0" 如果啟用,則關(guān)閉正常的錯(cuò)誤報(bào)告,并將錯(cuò)誤的格式設(shè)置為 XML-RPC 錯(cuò)誤信息的格式。 PHP_INI_SYSTEM
xmlrpc_error_number "0" 用作 XML-RPC faultCode 元素的值。 PHP_INI_ALL
docref_root "" (available since PHP 4.3) PHP_INI_ALL
docref_ext "" (available since PHP 4.3.2) PHP_INI_ALL
error_prepend_string NULL 規(guī)定錯(cuò)誤信息之前輸出的字符串。 PHP_INI_ALL
error_append_string NULL 規(guī)定錯(cuò)誤信息之后輸出的字符串。 PHP_INI_ALL
error_log NULL

設(shè)置腳本錯(cuò)誤將被記錄到的文件。該文件必須是 web 服務(wù)器用戶可寫的。

如果使用了特殊值 syslog,則將錯(cuò)誤信息發(fā)送到系統(tǒng)日志記錄器。

PHP_INI_ALL

PHP Error 和 Logging 函數(shù)

函數(shù) 描述
debug_backtrace() 生成 backtrace。
debug_print_backtrace() 打印 backtrace。
error_get_last() 返回最后發(fā)生的錯(cuò)誤。
error_log() 向服務(wù)器錯(cuò)誤記錄、文件或遠(yuǎn)程目標(biāo)發(fā)送錯(cuò)誤消息。
error_reporting() 規(guī)定報(bào)告哪個(gè)錯(cuò)誤。
restore_error_handler() 恢復(fù)之前的錯(cuò)誤處理程序。
restore_exception_handler() 恢復(fù)之前的異常處理程序。
set_error_handler() 設(shè)置用戶自定義的錯(cuò)誤處理函數(shù)。
set_exception_handler() 設(shè)置用戶自定義的異常處理函數(shù)。
trigger_error() 創(chuàng)建用戶級(jí)別的錯(cuò)誤消息。
user_error() trigger_error() 的別名。

PHP 5 預(yù)定義錯(cuò)誤和日志常量

常量 描述
1 E_ERROR 運(yùn)行時(shí)致命的錯(cuò)誤。不能修復(fù)的錯(cuò)誤。終止執(zhí)行腳本。
2 E_WARNING 運(yùn)行時(shí)非致命的錯(cuò)誤。不終止執(zhí)行腳本。
4 E_PARSE 編譯時(shí)語法解析錯(cuò)誤。解析錯(cuò)誤僅僅由分析器產(chǎn)生。
8 E_NOTICE 運(yùn)行時(shí)通知。表示腳本遇到可能會(huì)表現(xiàn)為錯(cuò)誤的情況,但是在可以正常運(yùn)行的腳本里面也可能會(huì)有類似的通知。
16 E_CORE_ERROR 在 PHP 初始化啟動(dòng)過程中發(fā)生的致命錯(cuò)誤。該錯(cuò)誤類似 E_ERROR,但是是由 PHP 引擎核心產(chǎn)生的。
32 E_CORE_WARNING PHP 初始化啟動(dòng)過程中發(fā)生的警告 (非致命錯(cuò)誤) 。類似 E_WARNING,但是是由 PHP 引擎核心產(chǎn)生的。
64 E_COMPILE_ERROR 致命編譯時(shí)錯(cuò)誤。類似 E_ERROR, 但是是由 Zend 腳本引擎產(chǎn)生的。
128 E_COMPILE_WARNING 編譯時(shí)警告 (非致命錯(cuò)誤)。類似 E_WARNING,但是是由 Zend 腳本引擎產(chǎn)生的。
256 E_USER_ERROR 用戶產(chǎn)生的錯(cuò)誤信息。類似 E_ERROR, 但是是由用戶自己在代碼中使用PHP函數(shù) trigger_error()來產(chǎn)生的。
512 E_USER_WARNING 用戶產(chǎn)生的警告信息。類似 E_WARNING, 但是是由用戶自己在代碼中使用 PHP 函數(shù) trigger_error() 來產(chǎn)生的。
1024 E_USER_NOTICE 用戶產(chǎn)生的通知信息。類似 E_NOTICE, 但是是由用戶自己在代碼中使用 PHP 函數(shù) trigger_error() 來產(chǎn)生的。
2048 E_STRICT 啟用 PHP 對(duì)代碼的修改建議,以確保代碼具有最佳的互操作性和向前兼容性。
4096 E_RECOVERABLE_ERROR 可被捕捉的致命錯(cuò)誤。它表示發(fā)生了一個(gè)可能非常危險(xiǎn)的錯(cuò)誤,但是還沒有導(dǎo)致 PHP 引擎處于不穩(wěn)定的狀態(tài)。 如果該錯(cuò)誤沒有被用戶自定義句柄捕獲 (參見 set_error_handler()),將成為一個(gè) E_ERROR 從而腳本會(huì)終止運(yùn)行。
8192 E_DEPRECATED 運(yùn)行時(shí)通知。啟用后將會(huì)對(duì)在未來版本中可能無法正常工作的代碼給出警告。
16384 E_USER_DEPRECATED 用戶產(chǎn)生的警告信息。類似 E_DEPRECATED, 但是是由用戶自己在代碼中使用 PHP 函數(shù) trigger_error() 來產(chǎn)生的。
32767 E_ALL E_STRICT 除非的所有錯(cuò)誤和警告信息。