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