PHP Error 和 Logging 函數(shù)
PHP Error 和 Logging 函數(shù)
PHP Error 和 Logging 簡介
Error 和 Logging 函數(shù)允許您對錯誤進行處理和記錄。
Error 函數(shù)允許用戶定義錯誤處理規(guī)則,并修改記錄錯誤的方式。
Logging 函數(shù)允許用戶對應(yīng)用程序進行日志記錄,并把日志消息發(fā)送到電子郵件、系統(tǒng)日志或其他的機器。
執(zhí)行配置
error 函數(shù)受 php.ini 配置文件影響。
錯誤和日志配置選項:
參數(shù) | 默認(rèn)值 | 描述 | 可修改范圍 |
---|---|---|---|
error_reporting | NULL | 設(shè)置 PHP 的報錯級別并返回當(dāng)前級別(數(shù)字或常量)。 | PHP_INI_ALL |
display_errors | "1" |
該選項設(shè)置是否將錯誤信息作為輸出的一部分顯示到屏幕,或者對用戶隱藏而不顯示。 注意: 該特性不要在上線生產(chǎn)環(huán)境中使用 (在開發(fā)測試過程中使用) |
PHP_INI_ALL |
display_startup_errors | "0" | 即使 display_errors 設(shè)置為開啟, PHP 啟動過程中的錯誤信息也不會被顯示。強烈建議除了調(diào)試目的以外,將 display_startup_errors 設(shè)置為關(guān)閉。 | PHP_INI_ALL |
log_errors | "0" | 設(shè)置是否將腳本運行的錯誤信息記錄到服務(wù)器錯誤日志或者error_log之中。注意,這是與服務(wù)器相關(guān)的特定配置項。 | PHP_INI_ALL |
log_errors_max_len | "1024" | 設(shè)置 log_errors 的最大字節(jié)數(shù). 在 error_log 會添加有關(guān)錯誤源的信息。默認(rèn)值為1024,如果設(shè)置為0表示不限長度。該長度設(shè)置對記錄的錯誤,顯示的錯誤,以及 $php_errormsg都會有限制作用。 | PHP_INI_ALL |
ignore_repeated_errors | "0" | 不記錄重復(fù)的信息。重復(fù)的錯誤必須出現(xiàn)在同一個文件中的同一行代碼上,除非 ignore_repeated_source 設(shè)置為true。 | PHP_INI_ALL |
ignore_repeated_source | "0" | 忽略重復(fù)消息時,也忽略消息的來源。當(dāng)該設(shè)置開啟時,重復(fù)信息將不會記錄它是由不同的文件還是不同的源代碼行產(chǎn)生的。 | PHP_INI_ALL |
report_memleaks | "1" | 如果這個參數(shù)設(shè)置為Off,則內(nèi)存泄露信息不會顯示 (在 stdout 或者日志中)。 | PHP_INI_ALL |
track_errors | "0" | 如果開啟,最后的一個錯誤將永遠存在于變量 $php_errormsg 中。 | PHP_INI_ALL |
html_errors | "1" | 在錯誤信息中關(guān)閉HTML標(biāo)簽。 | PHP_INI_ALL PHP_INI_SYSTEM in PHP <= 4.2.3. |
xmlrpc_errors | "0" | 關(guān)閉正常的錯誤報告,并將錯誤的格式設(shè)置為XML-RPC錯誤信息的格式。 | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | 用作 XML-RPC faultCode 元素的值。 | PHP_INI_ALL |
docref_root | "" | 新的錯誤信息格式包含了對應(yīng)的參考頁面,該頁面對錯誤進行具體描述,或者描述了導(dǎo)致該錯誤發(fā)生的函數(shù)。 為了提供手冊的頁面,你可以在PHP官方站點下載對應(yīng)語言的手冊,并在ini中設(shè)置網(wǎng)址到本地對應(yīng)的地址。 如果你的本地手冊拷貝可以使用"/manual/" 訪問,你就可以簡單的設(shè)置 docref_root=/manual/。 另外你還需要設(shè)置 docref_ext 匹配你本地文件的后綴名 docref_ext=.html。當(dāng)然也可以設(shè)置一個外部的參考地址。 例如你可以設(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 | 錯誤信息之前輸出的內(nèi)容。 | PHP_INI_ALL |
error_append_string | NULL | 錯誤信息之后輸出的內(nèi)容。 | PHP_INI_ALL |
error_log | NULL | 設(shè)置腳本錯誤將被記錄到的文件。該文件必須是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ā)生的錯誤。 | 5 |
error_log() | 向服務(wù)器錯誤記錄、文件或遠程目標(biāo)發(fā)送一個錯誤。 | 4 |
error_reporting() | 規(guī)定報告哪個錯誤。 | 4 |
restore_error_handler() | 恢復(fù)之前的錯誤處理程序。 | 4 |
restore_exception_handler() | 恢復(fù)之前的異常處理程序。 | 5 |
set_error_handler() | 設(shè)置用戶自定義的錯誤處理函數(shù)。 | 4 |
set_exception_handler() | 設(shè)置用戶自定義的異常處理函數(shù)。 | 5 |
trigger_error() | 創(chuàng)建用戶自定義的錯誤消息。 | 4 |
user_error() | trigger_error() 的別名。 | 4 |
PHP Error 和 Logging 常量
PHP:指示支持該常量的最早的 PHP 版本。
值 | 常量 | 描述 | PHP |
---|---|---|---|
1 | E_ERROR | 運行時致命的錯誤。不能修復(fù)的錯誤。停止執(zhí)行腳本。 | |
2 | E_WARNING | 運行時非致命的錯誤。沒有停止執(zhí)行腳本。 | |
4 | E_PARSE | 編譯時的解析錯誤。解析錯誤應(yīng)該只由解析器生成。 | |
8 | E_NOTICE | 運行時的通知。腳本發(fā)現(xiàn)可能是一個錯誤,但也可能在正常運行腳本時發(fā)生。 | |
16 | E_CORE_ERROR | PHP 啟動時的致命錯誤。這就如同 PHP 核心的 E_ERROR。 | 4 |
32 | E_CORE_WARNING | PHP 啟動時的非致命錯誤。這就如同 PHP 核心的 E_WARNING。 | 4 |
64 | E_COMPILE_ERROR | 編譯時致命的錯誤。這就如同由 Zend 腳本引擎生成的 E_ERROR。 | 4 |
128 | E_COMPILE_WARNING | 編譯時非致命的錯誤。這就如同由 Zend 腳本引擎生成的 E_WARNING。 | 4 |
256 | E_USER_ERROR | 用戶生成的致命錯誤。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_ERROR。 | 4 |
512 | E_USER_WARNING | 用戶生成的非致命錯誤。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_WARNING。 | 4 |
1024 | E_USER_NOTICE | 用戶生成的通知。這就如同由程序員使用 PHP 函數(shù) trigger_error() 生成的 E_NOTICE。 | 4 |
2048 | E_STRICT | 運行時的通知。PHP 建議您改變代碼,以提高代碼的互用性和兼容性。 | 5 |
4096 | E_RECOVERABLE_ERROR | 可捕獲的致命錯誤。這就如同一個可以由用戶定義的句柄捕獲的 E_ERROR(見 set_error_handler())。 | 5 |
6143 | E_ALL | 所有的錯誤和警告的級別,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 將作為 E_ALL的一部分)。 | 5 |