오류 및 로깅 기능을 사용하면 오류를 처리하고 기록할 수 있습니다.
오류 기능을 사용하면 사용자는 오류 처리 규칙을 정의하고 오류 기록 방식을 수정할 수 있습니다.
로깅 기능을 사용하면 사용자는 응용 프로그램을 기록하고 로그 메시지를 이메일, 시스템 로그 또는 기타 컴퓨터로 보낼 수 있습니다.
오류 기능은 php.ini 구성 파일의 영향을 받습니다.
오류 및 로그 구성 옵션:
매개변수 | 기본값 | 설명하다 | 수정 가능 범위 |
---|---|---|---|
오류_보고 | NULL | PHP의 오류 수준을 설정하고 현재 수준(숫자 또는 상수)을 반환합니다. | PHP_INI_ALL |
디스플레이 오류 | "1" | 이 옵션은 오류 메시지를 출력의 일부로 화면에 표시할지 아니면 사용자에게 숨길지 설정합니다. 참고: 이 기능은 프로덕션 환경에서 사용하면 안 됩니다(개발 및 테스트 중에 사용됨). | PHP_INI_ALL |
디스플레이_시작_오류 | "0" | display_errors가 on으로 설정되어 있어도 PHP 시작 중에 오류 메시지가 표시되지 않습니다. 디버깅 목적을 제외하고는 display_startup_errors를 off로 설정하는 것이 좋습니다. | PHP_INI_ALL |
로그 오류 | "0" | 스크립트 실행 오류 정보를 서버 오류 로그에 기록할지 error_log에 기록할지 설정합니다. 이는 서버별 구성 항목입니다. | PHP_INI_ALL |
log_errors_max_len | "1024" | log_errors에 최대 바이트 수를 설정합니다. 오류 소스에 대한 정보가 error_log에 추가됩니다. 기본값은 1024입니다. 0으로 설정하면 길이에 제한이 없습니다. 이 길이 설정은 기록된 오류, 표시된 오류 및 $php_errormsg에 제한적인 영향을 미칩니다. | PHP_INI_ALL |
무시_반복_오류 | "0" | 중복된 정보는 기록되지 않습니다. ignore_repeated_source가 true로 설정되지 않은 한 동일한 파일의 동일한 코드 줄에서 반복되는 오류가 발생해야 합니다. | PHP_INI_ALL |
무시_반복_소스 | "0" | 중복된 메시지가 무시되면 메시지의 소스도 무시됩니다. 이 설정이 켜져 있으면 중복 메시지는 다른 파일 또는 다른 소스 코드 줄에서 생성되었는지 여부를 기록하지 않습니다. | PHP_INI_ALL |
Report_memleaks | "1" | 이 매개변수가 Off로 설정되면 메모리 누수 정보가 표시되지 않습니다(stdout 또는 로그에). | PHP_INI_ALL |
추적 오류 | "0" | 활성화되면 마지막 오류는 항상 $php_errormsg 변수에 존재하게 됩니다. | PHP_INI_ALL |
html_errors | "1" | 오류 메시지에서 HTML 태그를 닫습니다. | PHP <= 4.2.3의 PHP_INI_ALLPHP_INI_SYSTEM. |
xmlrpc_errors | "0" | 일반 오류 보고를 끄고 오류 형식을 XML-RPC 오류 메시지로 지정합니다. | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | XML-RPC failureCode 요소의 값으로 사용됩니다. | PHP_INI_ALL |
문서 참조_루트 | "" | 새로운 오류 메시지 형식에는 오류를 구체적으로 설명하거나 오류를 발생시킨 기능을 설명하는 해당 참조 페이지가 포함되어 있습니다. 매뉴얼 페이지를 제공하기 위해서는 PHP 공식 사이트에서 해당 언어 매뉴얼을 다운로드하고 ini에 URL을 로컬 해당 주소로 설정하면 됩니다. "/manual/"을 사용하여 매뉴얼의 로컬 복사본에 액세스할 수 있는 경우 간단히 docref_root=/manual/을 설정하면 됩니다. 또한 로컬 파일 docref_ext=.html의 접미사와 일치하도록 docref_ext를 설정해야 합니다. 물론 외부 참조 주소를 설정할 수도 있습니다. 예를 들어 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 |
오류_로그 | NULL | 스크립트 오류가 기록될 파일을 설정합니다. 파일은 웹 서버 사용자가 쓸 수 있어야 합니다. | PHP_INI_ALL |
오류 및 로깅 기능은 PHP 핵심의 일부입니다. 이 기능을 사용하기 위해 설치가 필요하지 않습니다.
PHP : 이 기능을 지원하는 가장 초기의 PHP 버전을 나타냅니다.
기능 | 설명하다 | PHP |
---|---|---|
debug_backtrace() | 역추적을 생성합니다. | 4 |
debug_print_backtrace() | 역추적을 인쇄합니다. | 5 |
error_get_last() | 발생한 마지막 오류를 가져옵니다. | 5 |
오류_로그() | 서버 오류 로그, 파일 또는 원격 대상으로 오류를 보냅니다. | 4 |
오류보고() | 보고할 오류를 지정합니다. | 4 |
복원_오류_처리기() | 이전 오류 처리기를 복원합니다. | 4 |
복원_예외_처리기() | 이전 예외 처리기를 복원합니다. | 5 |
set_error_handler() | 사용자 정의 오류 처리 기능을 설정합니다. | 4 |
set_Exception_handler() | 사용자 정의 예외 처리 기능을 설정합니다. | 5 |
트리거_오류() | 사용자 정의 오류 메시지를 생성합니다. | 4 |
사용자_오류() | Trigger_error()의 별칭입니다. | 4 |
PHP : 이 상수를 지원하는 최초의 PHP 버전을 나타냅니다.
값 | 끊임없는 | 설명하다 | PHP |
---|---|---|---|
1 | E_ERROR | 런타임에 치명적인 오류가 발생했습니다. 수정할 수 없는 오류입니다. 스크립트 실행을 중지합니다. | |
2 | E_경고 | 치명적이지 않은 런타임 오류입니다. 스크립트 실행이 중지되지 않습니다. | |
4 | E_PARSE | 컴파일 시간 구문 분석 오류입니다. 구문 분석 오류는 구문 분석기에 의해서만 생성되어야 합니다. | |
8 | E_공지사항 | 런타임 알림. 스크립트 검색은 버그일 수 있지만 스크립트를 정상적으로 실행할 때도 발생할 수 있습니다. | |
16 | E_CORE_ERROR | PHP 시작 시 치명적인 오류가 발생했습니다. 이는 PHP 코어의 E_ERROR와 같습니다. | 4 |
32 | E_CORE_경고 | 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 | 처리 가능한 치명적인 오류. 이는 사용자 정의 핸들(set_error_handler() 참조)에 의해 포착될 수 있는 E_ERROR와 같습니다. | 5 |
6143 | E_ALL | E_STRICT를 제외한 모든 오류 및 경고 수준(PHP 6.0부터 E_STRICT는 E_ALL의 일부임) | 5 |