최신 웹 개발 튜토리얼
 

PHP 5 개 오류 기능


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)