PHP Error 和 Logging 函數(shù)

2021-11-19 17:44 更新

Error 和 Logging 函數(shù)是 PHP 核心的組成部分,它們無需安裝即可使用。

PHP Error 和 Logging 簡(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ī)器。


執(zhí)行配置

error 函數(shù)受 php.ini 配置文件影響。

錯(cuò)誤和日志配置選項(xiàng):

參數(shù) 默認(rèn)值 描述 可修改范圍
error_reporting NULL 設(shè)置 PHP 的報(bào)錯(cuò)級(jí)別并返回當(dāng)前級(jí)別(數(shù)字或常量)。 PHP_INI_ALL
display_errors "1" 該選項(xiàng)設(shè)置是否將錯(cuò)誤信息作為輸出的一部分顯示到屏幕,或者對(duì)用戶隱藏而不顯示。
注意: 該特性不要在上線生產(chǎn)環(huán)境中使用 (在開發(fā)測(cè)試過程中使用)
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)。 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" 不記錄重復(fù)的信息。重復(fù)的錯(cuò)誤必須出現(xiàn)在同一個(gè)文件中的同一行代碼上,除非 ignore_repeated_source 設(shè)置為true。 PHP_INI_ALL
ignore_repeated_source "0" 忽略重復(fù)消息時(shí),也忽略消息的來源。當(dāng)該設(shè)置開啟時(shí),重復(fù)信息將不會(huì)記錄它是由不同的文件還是不同的源代碼行產(chǎn)生的。 PHP_INI_ALL
report_memleaks "1" 如果這個(gè)參數(shù)設(shè)置為Off,則內(nèi)存泄露信息不會(huì)顯示 (在 stdout 或者日志中)。 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 "" 新的錯(cuò)誤信息格式包含了對(duì)應(yīng)的參考頁(yè)面,該頁(yè)面對(duì)錯(cuò)誤進(jìn)行具體描述,或者描述了導(dǎo)致該錯(cuò)誤發(fā)生的函數(shù)。
為了提供手冊(cè)的頁(yè)面,你可以在PHP官方站點(diǎn)下載對(duì)應(yīng)語言的手冊(cè),并在ini中設(shè)置網(wǎng)址到本地對(duì)應(yīng)的地址。
如果你的本地手冊(cè)拷貝可以使用"/manual/" 訪問,你就可以簡(jiǎn)單的設(shè)置 docref_root=/manual/。
另外你還需要設(shè)置 docref_ext 匹配你本地文件的后綴名 docref_ext=.html。當(dāng)然也可以設(shè)置一個(gè)外部的參考地址。
例如你可以設(shè)置 docref_root=http://manual/en/ 或者 docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"
PHP_INI_ALL
docref_ext "" 參見 docref_root. PHP_INI_ALL
error_prepend_string NULL 錯(cuò)誤信息之前輸出的內(nèi)容。 PHP_INI_ALL
error_append_string NULL 錯(cuò)誤信息之后輸出的內(nèi)容。 PHP_INI_ALL
error_log NULL 設(shè)置腳本錯(cuò)誤將被記錄到的文件。該文件必須是web服務(wù)器用戶可寫的。 PHP_INI_ALL

安裝

Error 和 Logging 函數(shù)是 PHP 核心的組成部分。無需安裝即可使用這些函數(shù)。


PHP Error 和 Logging 函數(shù)

PHP:指示支持該函數(shù)的最早的 PHP 版本。

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


PHP Error 和 Logging 常量

PHP:指示支持該常量的最早的 PHP 版本。

常量 描述 PHP
1 E_ERROR 運(yùn)行時(shí)致命的錯(cuò)誤。不能修復(fù)的錯(cuò)誤。停止執(zhí)行腳本。
2 E_WARNING 運(yùn)行時(shí)非致命的錯(cuò)誤。沒有停止執(zhí)行腳本。
4 E_PARSE 編譯時(shí)的解析錯(cuò)誤。解析錯(cuò)誤應(yīng)該只由解析器生成。
8 E_NOTICE 運(yùn)行時(shí)的通知。腳本發(fā)現(xiàn)可能是一個(gè)錯(cuò)誤,但也可能在正常運(yùn)行腳本時(shí)發(fā)生。
16 E_CORE_ERROR PHP 啟動(dòng)時(shí)的致命錯(cuò)誤。這就如同 PHP 核心的 E_ERROR。 4
32 E_CORE_WARNING PHP 啟動(dòng)時(shí)的非致命錯(cuò)誤。這就如同 PHP 核心的 E_WARNING。 4
64 E_COMPILE_ERROR 編譯時(shí)致命的錯(cuò)誤。這就如同由 Zend 腳本引擎生成的 E_ERROR。 4
128 E_COMPILE_WARNING 編譯時(shí)非致命的錯(cuò)誤。這就如同由 Zend 腳本引擎生成的 E_WARNING。 4
256 E_USER_ERROR 用戶生成的致命錯(cuò)誤。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_ERROR。 4
512 E_USER_WARNING 用戶生成的非致命錯(cuò)誤。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_WARNING。 4
1024 E_USER_NOTICE 用戶生成的通知。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_NOTICE。 4
2048 E_STRICT 運(yùn)行時(shí)的通知。PHP 建議您改變代碼,以提高代碼的互用性和兼容性。 5
4096 E_RECOVERABLE_ERROR 可捕獲的致命錯(cuò)誤。這就如同一個(gè)可以由用戶定義的句柄捕獲的 E_ERROR(見 set_error_handler())。 5
6143 E_ALL 所有的錯(cuò)誤和警告的級(jí)別,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 將作為 E_ALL的一部分)。 5

接下來,本站將帶你了解 Filesystem 函數(shù)!


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)