PHP의 로그 오류

Olorunfemi Akinlua 2024년2월15일
  1. ini_set()을 사용하여 PHP 오류 로깅 활성화
  2. error_log()를 사용하여 PHP에서 오류 기록
  3. error_reporting()을 사용하여 브라우저에서 PHP의 오류 기록
PHP의 로그 오류

PHP 애플리케이션을 포함한 모든 애플리케이션을 개발할 때 로깅 오류는 필수적입니다. 따라서 PHP에서 오류를 기록하는 방법을 아는 것이 중요하며 문제가 발생했을 때를 알기 위해 print_r()var_dump()에 의존하지 않아야 합니다.

이 기사에서는 PHP에서 오류 로깅을 활성화하고 작업하는 데 필요한 모든 기능에 대해 설명합니다.

ini_set()을 사용하여 PHP 오류 로깅 활성화

먼저 php.ini 파일을 열고 아래 이미지와 같이 display_errorsOn으로 설정되어 있는지 확인합니다.

디스플레이가 켜짐으로 설정됨

또한 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, destinationadditional_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 파일을 기억하십시오. 이 함수와 해당 매개 변수를 거기에 추가할 수 있습니다.

  1. PHP 코드 공간 내에서 모든 오류 보고를 해제합니다.

    error_reporting(0);
    
  2. 간단한 실행 오류(치명적인 런타임 오류, 런타임 경고 및 컴파일 타임 구문 분석 오류)를 보고합니다.

    error_reporting(E_ERROR | E_WARNING | E_PARSE);
    
  3. 초기화되지 않은 변수를 보고하거나 변수 이름의 맞춤법 오류를 파악하기 위해(런타임 알림).

    error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
    
  4. 런타임 알림을 제외한 모든 오류를 보고합니다.

    error_reporting(E_ALL & ~E_NOTICE);
    
  5. 모든 유형의 PHP 오류를 보고합니다.

    error_reporting(E_ALL);
    error_reporting(-1);
    ini_set('error_reporting', E_ALL);
    
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

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

관련 문장 - PHP Error