PHP Error 및 로깅 함수

PHP Error 소개

Error 및 Logging 함수는 오류 처리와 기록을 할 수 있습니다.

Error 함수는 사용자가 오류 처리 규칙을 정의하고 오류 기록 방식을 수정할 수 있습니다.

logging 함수는 사용자가 애플리케이션을 로그 기록하고, 로그 메시지를 이메일, 시스템 로그 또는 다른 기계로 전송할 수 있습니다.

error 함수는 오류 처리와 로그 기록을 완료합니다.

error 함수는 사용자 정의 오류 처리 규칙을 정의하고 오류 기록 방식을 수정할 수 있습니다.

logging 함수는 메시지를 다른 기계, 이메일 또는 시스템 로그로 직접 전송할 수 있습니다.

error reporting 함수는 오류 유형과 레벨을 설정할 수 있습니다.

설치

PHP error 함수는 PHP 코어의 일부입니다. 설치 없이 사용할 수 있습니다.

런타임 구성

error 함수의 동작은 php.ini에 설정된 것이 영향을 받습니다.

Errors 및 logging 구성 옵션은 다음과 같습니다:

이름 기본 값 설명 수정 가능 범위
error_reporting NULL 오류 보고 레벨을 설정합니다 (정수 또는 명명된 상수) 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" 이 파라미터가 On(기본 설정)으로 설정되면, Zend 메모리 관리자가 감지한 메모리 누수 보고가 표시됩니다. PHP_INI_ALL
track_errors "0" 开启되면 마지막 오류가 항상 변수 $php_errormsg에 존재합니다. PHP_INI_ALL
html_errors "1" 오류 정보에서 HTML 태그를关闭합니다.
  • PHP_INI_ALL
  • PHP <= 4.2.3에서 PHP_INI_SYSTEM
xmlrpc_errors "0" 사용되면 정상적인 오류 보고를关闭하고, 오류 형식을 XML-RPC 오류 정보 형식으로 설정합니다. PHP_INI_SYSTEM
xmlrpc_error_number "0" XML-RPC faultCode 요소의 값으로 사용됩니다. PHP_INI_ALL
docref_root "" (PHP 4.3부터 사용 가능) PHP_INI_ALL
docref_ext "" (PHP 4.3.2부터 사용 가능) PHP_INI_ALL
error_prepend_string NULL 오류 정보 전에 출력할 문자열을 지정합니다. PHP_INI_ALL
error_append_string NULL 오류 정보 후에 출력할 문자열을 지정합니다. PHP_INI_ALL
error_log NULL

스크립트 오류가 기록될 파일을 설정합니다. 이 파일은 웹 서버 사용자가 쓸 수 있는 파일이어야 합니다.

syslog라는 특수 값이 사용되면 오류 정보를 시스템 로그 기록자로 전송합니다.

PHP_INI_ALL

PHP Error 및 로깅 함수

함수 설명
debug_backtrace() backtrace을 생성합니다.
debug_print_backtrace() 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 실행 시 치명적 오류. 수정할 수 없는 오류. 스크립트 실행을 중단합니다.
2 E_WARNING 실행 시 비치명적 오류. 스크립트 실행을 중단하지 않습니다.
4 E_PARSE 구성 시 문법 분석 오류. 분석 오류는 분석기만에서 생성됩니다.
8 E_NOTICE 실행 시 알림. 스크립트가 오류로 표현될 수 있는 상황을 나타냅니다. 하지만 정상적으로 실행되는 스크립트에서도 유사한 알림이 있을 수 있습니다.
16 E_CORE_ERROR PHP 초기화 시작 과정에서 발생한 치명적 오류. 이 오류는 E_ERROR과 유사하지만, PHP 엔진 핵심에서 생성합니다.
32 E_CORE_WARNING PHP 초기화 시작 과정에서 발생한 경고 (비치명적 오류). E_WARNING과 유사하지만, PHP 엔진 핵심에서 생성합니다.
64 E_COMPILE_ERROR 치명적 구성 시 오류. E_ERROR과 유사하지만, Zend 스크립트 엔진에서 생성합니다.
128 E_COMPILE_WARNING 구성 시 경고 (비치명적 오류). E_WARNING과 유사하지만, Zend 스크립트 엔진에서 생성합니다.
256 E_USER_ERROR 사용자가 생성한 오류 정보. E_ERROR과 유사하지만, 사용자가 코드에서 PHP 함수 trigger_error()를 사용하여 생성합니다.
512 E_USER_WARNING 사용자가 생성한 경고 정보. E_WARNING과 유사하지만, 사용자가 코드에서 PHP 함수 trigger_error()를 사용하여 생성합니다.
1024 E_USER_NOTICE 사용자가 생성한 알림 정보. E_NOTICE와 유사하지만, 사용자가 코드에서 PHP 함수 trigger_error()를 사용하여 생성합니다.
2048 E_STRICT PHP 코드의 수정을 위한 제안을 활성화하여 최상의 상호작용성과 앞으로의 호환성을 보장합니다.
4096 E_RECOVERABLE_ERROR 캡처 가능한 치명적인 오류. PHP 엔진이 불안정한 상태로 변할 수 있는 매우 위험한 오류가 발생했습니다. 이 오류가 사용자가 정의한 핸들러에 의해 잡혀지지 않았다면 (set_error_handler()을 참조하세요), E_ERROR이 되어 스크립트가 실행을 중단합니다.
8192 E_DEPRECATED 런타임 알림. 활성화된 경우, 향후 버전에서 원활하게 작동하지 않을 수 있는 코드에 대한 경고를 제공합니다.
16384 E_USER_DEPRECATED 사용자가 생성한 경고 정보. E_DEPRECATED와 유사하지만, 사용자가 PHP 함수 trigger_error()를 사용하여 생성합니다.
32767 E_ALL E_STRICT를 제외한 모든 오류와 경고 정보.