Hàm xử lý lỗi và log trong PHP

Đây là những hàm xử lý lỗi và xử lý các vấn đề về log trong PHP. Chúng cho phép bạn định nghĩa các qui tắc xử lý lỗi cho riêng bạn, cũng như chỉnh sửa cách lỗi đó có thể được log. Điều này cho phép bạn thay đổi và cải thiện việc báo cáo lỗi phù hợp với yêu cầu của bạn.

Sử dụng các hàm xử lý log này, bạn có thể gửi message một cách trực tiếp tới thiết bị khác, tới một Email, các các System log, … để bạn có thể log và giám sát các phần quan trọng của ứng dụng.

Cài đặt

Những hàm xử lý lỗi và xử lý log là một phần của PHP Core. Bạn không cần cài đặt gì thêm để sử dụng các hàm này.

Cấu hình Runtime

Chế độ vận hành của các hàm xử lý lỗi và xử lý log trong PHP phụ thuộc vào các cài đặt trong php.ini. Các cài đặt này được định nghĩa ở bảng sau:

TênMặc địnhCó thể thay đổiChangelog
error_reportingNULLPHP_INI_ALL
display_errors"1"PHP_INI_ALL
display_startup_errors"0"PHP_INI_ALLCó sẵn từ PHP 4.0.3.
log_errors"0"PHP_INI_ALL
log_errors_max_len"1024"PHP_INI_ALLCó sẵn từ PHP 4.3.0.
ignore_repeated_errors"0"PHP_INI_ALLCó sẵn từ PHP 4.3.0.
ignore_repeated_source"0"PHP_INI_ALLCó sẵn từ PHP 4.3.0.
report_memleaks"1"PHP_INI_ALLCó sẵn từ PHP 4.3.0.
track_errors"0"PHP_INI_ALL
html_errors"1"PHP_INI_ALLPHP_INI_SYSTEM trong PHP <= 4.2.3. Có sẵn từ PHP 4.0.2.
docref_root""PHP_INI_ALLCó sẵn từ PHP 4.3.0.
docref_ext""PHP_INI_ALLCó sẵn từ PHP 4.3.2.
error_prepend_stringNULLPHP_INI_ALL
error_append_stringNULLPHP_INI_ALL
error_logNULLPHP_INI_ALL
warn_plus_overloadingNULL
Tùy chọn này không còn có sẵn ở trong PHP 4.0.0

Hằng về Error và Logging trong PHP

Cột PHP chỉ phiên bản PHP sớm nhất hỗ trợ hằng đó.

Bạn có thể sử dụng bất kỳ hằng nào trong khi cấu hình php.ini file của bạn.

Giá trịHằngMiêu tảPHP
1E_ERRORFatal run-time error. Đây là các lỗi nghiêm trọng, và việc thực thi của script bị ngừng lại
2E_WARNINGNon-fatal run-time error. Đây là các lỗi không nghiêm trọng, và việc thực thi của script không bị ngừng lại
4E_PARSECompile-time parse error. Lỗi về Parse trong khi biên dịch, và nên chỉ được tạo bởi Parser
8E_NOTICERun-time notice. Script tìm thấy cái gì đó có thể là một lỗi, nhưng cũng có thể xảy ra khi đang chạy một Script một cách bình thường
16E_CORE_ERRORFatal error tại quá trình khởi động PHP. Lỗi này khá giống một E_ERROR trong PHP Core4
32E_CORE_WARNINGNon-fatal error tại quá trình khởi động PHP. Lỗi này khá giống một E_WARNING trong PHP Core4
64E_COMPILE_ERRORFatal compile-time error. Các lỗi này khá giống một E_ERROR được tạo bởi Zend Scripting Engine4
128E_COMPILE_WARNINGNon-fatal compile-time error. Các lỗi này khá giống một E_WARNING được tạo bởi Zend Scripting Engine4
256E_USER_ERRORFatal user-generated error. Một lỗi nghiêm trọng do người dùng tạo, giống một E_ERROR được thiết lập bởi lập trình viên bởi sử dụng hàm function trigger_error() trong PHP4
512E_USER_WARNINGNon-fatal user-generated warning. Do người dùng tạo, giống một E_WARNING được thiết lập bởi lập trình viên bởi sử dụng hàm trigger_error() trong PHP4
1024E_USER_NOTICEUser-generated notice. Do người dùng tạo, giống một E_NOTICE được thiết lập bởi lập trình viên bởi sử dụng hàm trigger_error() trong PHP4
2048E_STRICTRun-time notice. PHP gợi ý thay đổi code của bạn để làm code có tính tích hợp và hoạt động liên kết hơn5
4096E_RECOVERABLE_ERRORCatchable fatal error. Giống một E_ERROR nhưng có thể được bắt bởi handle do người dùng định nghĩa (bạn cũng tham khảo hàm set_error_handler())5
8191E_ALLTất cả Error và warning, ngoại trừ E_STRICT5

Danh sách hàm xử lý lỗi và xử lý log trong PHP

Để chạy các ví dụ, bạn sao chép phần PHP code vào phần // Phần PHP code ở dưới đây và sau đó lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả.

<html>

   <head>
      <title>Hàm trong PHP</title>
   </head>

   <body>

       // Phần PHP code

   </body>

</html>

Cột PHP chỉ phiên bản PHP sớm nhất mà hỗ trợ hàm đó.

HàmMiêu tảPHP
"="">Hàm debug_backtrace()Tạo một Backtrace4
"="">Hàm debug_print_backtrace()In một Backtrace5
"="">Hàm error_get_last()Lấy lỗi cuối cùng đã xảy ra5
"="">Hàm error_log()Gửi một lỗi tới Server Error-Log, tới một File hoặc một Remote Destination4
"="">Hàm error_reporting()Xác định lỗi nào được báo cáo4
"="">Hàm restore_error_handler()Phục hồi Error Handler trước đó4
"="">Hàm restore_exception_handler()Phục hồi Exception Handler trước đó5
"="">Hàm set_error_handler()Thiết lập một hàm do người dùng tạo để xử lý lỗi4
"="">Hàm set_exception_handler()Thiết lập một hàm do người dùng tạo để xử lý ngoại lệ5
"="">Hàm trigger_error()Tạo một error message được định nghĩa bởi người dùng4
"="">Hàm user_error()Alias của hàm trigger_error()4

Bình luận