PHP의 로그 오류
-
ini_set()
을 사용하여 PHP 오류 로깅 활성화 -
error_log()
를 사용하여 PHP에서 오류 기록 -
error_reporting()
을 사용하여 브라우저에서 PHP의 오류 기록
PHP 애플리케이션을 포함한 모든 애플리케이션을 개발할 때 로깅 오류는 필수적입니다. 따라서 PHP에서 오류를 기록하는 방법을 아는 것이 중요하며 문제가 발생했을 때를 알기 위해 print_r()
및 var_dump()
에 의존하지 않아야 합니다.
이 기사에서는 PHP에서 오류 로깅을 활성화하고 작업하는 데 필요한 모든 기능에 대해 설명합니다.
ini_set()
을 사용하여 PHP 오류 로깅 활성화
먼저 php.ini
파일을 열고 아래 이미지와 같이 display_errors
가 On
으로 설정되어 있는지 확인합니다.
또한 php.ini
파일 내에서 error_reporting
조건을 확인해야 합니다. 버전이 PHP 8.1인 경우 php.ini
파일에 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
가 표시될 수 있습니다.
그러나 안전을 위해 다음 줄을 추가하십시오.
error_reporting = E_ALL & ~E_NOTICE
error_reporting = E_ALL & ~E_NOTICE | E_STRICT
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ER… _ERROR
error_reporting = E_ALL & ~E_NOTICE
오류를 제대로 기록하려면 ini_set()
함수를 사용하여 오류 기록을 활성화해야 합니다. 이 기능을 사용하면 오류 로깅 옵션과 같은 구성 옵션의 값을 설정할 수 있습니다.
옵션과 값을 사용하여 코드베이스 내에서 PHP 오류 로깅을 구성할 수 있습니다. 아래 코드 스니펫은 필요한 옵션과 값을 보여줍니다.
ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");
PHP 스크립트 내에서 오류를 기록해야 하는 경우 해당 스크립트 내에 오류를 포함해야 합니다. DRY
원칙을 유지하려면 위의 코드를 포함하고 필요한 모든 PHP에서 요구하는 PHP 파일을 생성해야 합니다.
require_once('error.php');
error_log()
를 사용하여 PHP에서 오류 기록
이제 PHP 오류 로깅을 활성화하도록 PHP 환경을 구성했으므로 가장 중요한 error_log()
함수를 사용할 수 있습니다.
이 기능을 사용하면 디버깅을 위해(특히 프로덕션 환경에서) print_r()
및 var_dump()
기능 사용을 줄이고 무언가 제대로 작동하지 않음을 알려주는 특수 오류 템플릿을 생성합니다.
error_log()
가 어떻게 작동하는지 보여주기 위해 함수를 사용하여 파일 읽기 입력 작업이 실패했음을 알릴 수 있습니다. 코드 스니펫에서 file_get_contents
함수를 사용하여 PHP 입력을 읽고 $data
가 비어 있는 경우(NOT
조건에서 true
로 설정됨) 파일을 읽지 않음
이 표시됩니다. 오류 문이 기록됩니다.
$data = file_get_contents('php://input');
if (!$data) {
error_log("No file read. Check input conditions or values.");
}
file_get_contents()
함수에 대한 입력이 없는 경우 코드의 출력은 다음과 같습니다.
No file read. Check input conditions or values.
보시다시피 error_log()
함수는 message
인수를 받습니다. 해당 인수 외에도 message_type
, destination
및 additional_headers
인수가 필요합니다.
다른 로그 유형은 error_log
함수로 구문 분석할 정수 값을 정의합니다. 이에 대한 자세한 내용은 PHP 문서를 확인하십시오.
예를 들어 PHP 시스템 로거에 오류 메시지를 보내려면 메시지 유형으로 0
을 사용합니다.
또한 아래 코드 스니펫과 같이 3
메시지 유형을 사용하여 파일 대상에 저장할 수 있습니다.
error_log("No file read. Check input conditions or values.", 3, "/my-errors.log");
error_reporting()
을 사용하여 브라우저에서 PHP의 오류 기록
ini_set()
함수 외에도 보고되는 PHP 오류를 설정할 수 있습니다. error_reporting()
함수가 도움이 됩니다.
필요한 모든 PHP 파일에 필요하도록 생성한 오류 PHP 파일을 기억하십시오. 이 함수와 해당 매개 변수를 거기에 추가할 수 있습니다.
-
PHP 코드 공간 내에서 모든 오류 보고를 해제합니다.
error_reporting(0);
-
간단한 실행 오류(치명적인 런타임 오류, 런타임 경고 및 컴파일 타임 구문 분석 오류)를 보고합니다.
error_reporting(E_ERROR | E_WARNING | E_PARSE);
-
초기화되지 않은 변수를 보고하거나 변수 이름의 맞춤법 오류를 파악하기 위해(런타임 알림).
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
-
런타임 알림을 제외한 모든 오류를 보고합니다.
error_reporting(E_ALL & ~E_NOTICE);
-
모든 유형의 PHP 오류를 보고합니다.
error_reporting(E_ALL); error_reporting(-1); ini_set('error_reporting', E_ALL);
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn