PHP 오류 소개
오류 기능은 오류 처리 및 로깅을 처리하는 데 사용됩니다.
오류 기능은 우리가 오류가 기록 될 수있는 방법을 자신의 오류 처리 규칙을 정의하고 수정할 수 있습니다.
로깅 기능은 우리가 다른 기계, 이메일, 또는 시스템 로그에 직접 메시지를 보낼 수 있습니다.
오류보고 기능은 우리가 주어진 어떤 수준 및 오류 피드백의 종류 사용자 정의 할 수 있습니다.
설치
PHP의 에러 함수는 PHP 코어의 일부입니다. 아니 설치가 이러한 기능을 사용하는 데 필요하지 않습니다.
실행시 설정
오류 함수의 작동은 php.ini의 설정에 영향을받습니다.
오류 및 로깅 구성 옵션 :
이름 | 태만 | 기술 | 변하기 쉬운 |
---|---|---|---|
error_reporting은 | 없는 | (정수 또는 명명 된 상수 중 하나) 오류보고 레벨을 설정합니다 | 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 옵션의 최대 길이를 설정합니다. 값 "0" 전혀 최대 길이를 적용하지하는 데 사용할 수 있습니다. 이 길이가 기록 오류에 적용되는 오류를 표시하고, 또한 $ php_errormsg라는에 (available since PHP 4.3) | PHP_INI_ALL |
ignore_repeated_errors | "0" | 반복되는 오류 메시지를 기록할지 여부를 지정합니다. 로 설정하면 "1" 이 같은 줄에 같은 파일에서 반복되는 오류가있는 오류를 기록하지 않습니다 (available since PHP 4.3) | PHP_INI_ALL |
ignore_repeated_source | "0" | 반복되는 오류 메시지를 기록할지 여부를 지정합니다. 로 설정하면 "1" 이 파일이나 소스 라인 다른에서 반복되는 오류가있는 오류 로그되지 않습니다 (available since PHP 4.3) | PHP_INI_ALL |
report_memleaks | "1" | 로 설정하면 "1" (the default) 이 매개 변수는 젠드 메모리 관리자에 의해 감지 된 메모리 누수에 대한 보고서가 표시됩니다 (available since PHP 4.3) | PHP_INI_ALL |
만약 track_errors | "0" | 로 설정하면 "1" , 마지막 오류 메시지는 항상 $ php_errormsg 변수에 존재합니다 | PHP_INI_ALL |
html_errors | "1" | 오류 메시지에 HTML 태그를 해제 | PHP_INI_ALL PHP에서 PHP_INI_SYSTEM <= 4.2.3. |
xmlrpc_errors | "0" | 일반 오류보고 및 형식의 XML-RPC 오류 메시지 같은 오류 해제 (available since PHP 4.1) | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | 는 XML-RPC의 faultCode를 요소의 값으로 사용 (available since PHP 4.1) | PHP_INI_ALL |
docref_root | "" | (사용 가능한 PHP 4.3부터) | PHP_INI_ALL |
docref_ext | "" | (사용 가능한 PHP 4.3.2부터) | PHP_INI_ALL |
error_prepend_string | 없는 | 오류 메시지 전에 출력에 문자열을 지정합니다 | PHP_INI_ALL |
error_append_string | 없는 | 오류 메시지가 후 출력에 문자열을 지정합니다 | PHP_INI_ALL |
의 error_log | 없는 | 스크립트 오류가 기록되어야하는 파일의 이름을 지정합니다. 이 파일은 웹 서버의 사용자가 쓸 수 있어야합니다. 특수 값 시스템 로그를 사용하는 경우, 오류가 대신 시스템 로그로 전송됩니다 | PHP_INI_ALL |
PHP 오류 및 로깅 기능
기능 | 기술 |
---|---|
debug_backtrace() | 백 트레이스를 생성 |
debug_print_backtrace() | 백 트레이스를 출력합니다 |
error_get_last() | 마지막으로 발생한 오류를 반환 |
error_log() | 파일로, 로그에 오류 메시지를 보내거나 메일 계정에 |
error_reporting() | 오류가보고됩니다 지정 |
restore_error_handler() | 이전 오류 처리기를 복원 |
restore_exception_handler() | 이전 예외 처리기를 복원 |
set_error_handler() | 사용자 정의 에러 핸들러 함수를 설정 |
set_exception_handler() | 사용자 정의 예외 핸들러 함수를 설정 |
trigger_error() | 사용자 레벨의 에러 메시지를 작성합니다 |
user_error() | 의 별칭 trigger_error() |
PHP 5 개 미리 정의 된 오류 및 로깅 상수
값 | 일정한 | 기술 |
---|---|---|
1 | E_ERROR | 치명적인 런타임 오류. 에서 복구 할 수없는 오류가 발생했습니다. 스크립트의 실행은 정지 |
이 | E_WARNING | 런타임 경고 (non-fatal errors) . 스크립트의 실행은 중단되지 않는다 |
4 | E_PARSE | 컴파일 시간 오류를 구문 분석합니다. 오류는 파서에 의해 생성되어야 구문 분석 |
8 | E_NOTICE | 런타임 통지. 스크립트가 오류 일 수있는 것을 발견했지만, 정상적으로 스크립트를 실행할 때도 발생할 수 |
(16) | E_CORE_ERROR | PHP 시작시 치명적인 오류가 발생합니다. 이 PHP의 핵심에 의해 생성되는 것을 제외하고 이것은 E_ERROR 같다 |
(32) | E_CORE_WARNING | PHP 시작시 비 치명적 오류가 발생합니다. 이 PHP의 핵심에 의해 생성되는 것을 제외하고 이것은 E_WARNING 같다 |
(64) | E_COMPILE_ERROR | 치명적인 컴파일시 오류가 발생합니다. 이 젠드 스크립팅 엔진에 의해에 의해 생성되는 것을 제외하고 이것은 E_ERROR 같다 |
(128) | E_COMPILE_WARNING | 비 치명적 컴파일 타임 오류가 발생합니다. 이 젠드 스크립팅 엔진에 의해에 의해 생성되는 것을 제외하고 이것은 E_WARNING 같다 |
256 | E_USER_ERROR | 사용자가 생성 한 치명적 오류가 발생했습니다. 그것은 PHP 함수를 사용하여 PHP 코드 생성 제외 이것은 E_ERROR 같다 trigger_error() |
512 | E_USER_WARNING | 치명적이지 않은 사용자가 생성 한 경고. 그것은 PHP 함수를 사용하여 PHP 코드 생성 제외 이것은 E_WARNING 같다 trigger_error() |
1,024 | E_USER_NOTICE | 통지를 사용자가 생성. 그것은 PHP 함수를 사용하여 PHP 코드 생성 제외 이것이 E_NOTICE 같다 trigger_error() |
2,048 | E_STRICT | (PHP 5부터하지만, PHP 5.4까지 E_ALL에 포함되지 않음) PHP는 코드의 최선의 상호 운용성과 앞으로의 호환성을 보장합니다 코드 변경을 제안하도록 사용 |
4096 | E_RECOVERABLE_ERROR | 잡아낼 오류가 발생합니다. 아마 위험한 오류가 발생하지만, 불안정한 상태에서 엔진을 떠나지 않았 음을 나타냅니다. 에러는 사용자 정의 핸들에 걸려 있지 않은 경우, 애플리케이션은 그것이 E_ERROR이었던 것에 중단 (Since PHP 5.2) |
8192 | E_DEPRECATED | 런타임 통지. 향후 버전에서 작동하지 않습니다 코드에 대한 경고를받을이 사용 (Since PHP 5.3) |
16384 | E_USER_DEPRECATED | 사용자가 생성 한 경고 메시지. 그것은 PHP 함수를 사용하여 PHP 코드 생성 제외 이것이 E_DEPRECATED 같다 trigger_error() (PHP 5.3 이상) |
32767 | E_ALL | 모든 PHP 오류 및 경고 사용 (except E_STRICT in versions < 5.4) |