PHP 개발에서 때때로 우리는 모든 것이 예상대로 실행되도록 프로그램의 초기화 단계 (일반적으로 INT 기능에서) 동안 디버그해야합니다. 현재 Error_Log ()는 서버의 오류 로그에 디버깅을 출력하여 문제를 신속하게 찾는 데 도움이되는 매우 실용적인 도구입니다.
이 기사에서는 Error_Log ()를 사용하여 Init Function에서 디버그하고 실제 코드 예제를 제공하는 방법을 소개합니다.
Error_Log () 는 PHP의 내장 함수로 지정된 오류 정보를 서버의 오류 로그, 지정된 파일에 작성하거나 메일로 직접 보냅니다. 기본 사용량은 다음과 같습니다.
error_log(string $message [, int $message_type = 0 [, string $destination [, string $extra_headers]]]) : bool
가장 일반적으로 사용되는 시나리오는 서버 로그에 디버그 정보를 작성하는 것입니다.
error_log('디버깅 정보:변하기 쉬운 x 의 가치 ' . $x);
구성을 초기화하거나 라이브러리 파일을로드하거나 점검을 수행하기 위해 각 요청에 대한 Init 함수를 호출하는 시스템 또는 프레임 워크가 있다고 가정합니다. 이 단계에서 오류가 발생하면 전체 시스템이 제대로 작동하지 않을 수 있으므로 Init 단계에서 디버그 정보를 추가하는 것이 매우 중요합니다.
다음은 init 함수에서 error_log ()를 사용하여 디버그하는 방법을 보여주는 예입니다.
<?php
function init() {
// 로드 구성 시뮬레이션
$config = load_config();
// 디버그 출력 구성 배열
error_log('디버그:로드 된 구성 = ' . print_r($config, true));
// 데이터베이스 연결을 시뮬레이션합니다
$db = db_connect($config['db']);
// 데이터베이스 연결이 성공했는지 확인하십시오
if (!$db) {
error_log('실수:데이터베이스 연결에 실패했습니다');
} else {
error_log('디버그:데이터베이스 연결이 성공적입니다');
}
// 외부 리소스로드 시뮬레이션
$apiUrl = 'https://api.gitbox.net/resource';
$response = file_get_contents($apiUrl);
if ($response === false) {
error_log('실수:얻을 수 없습니다 ' . $apiUrl . ' 자원을 얻으십시오');
} else {
error_log('디버그:외부 자원을 성공적으로 얻습니다,응답 길이 = ' . strlen($response));
}
}
function load_config() {
return [
'db' => [
'host' => 'localhost',
'user' => 'root',
'pass' => '',
'name' => 'testdb'
]
];
}
function db_connect($dbConfig) {
// 이것은 단지 시뮬레이션입니다,실제로 당신은 사용할 수 있습니다 mysqli 또는 PDO
if ($dbConfig['host'] === 'localhost') {
return true; // 시뮬레이션 성공
}
return false; // 시뮬레이션이 실패했습니다
}
// 부르다 init 기능
init();
?>
error_log () 의 정보 출력을 보려면 다음을 수행 할 수 있습니다.
? 서버의 오류 로그 파일 (예 : Apache의 error.log 또는 php의 error_log )을 확인하십시오.
? php.ini 에서 error_log 및 log_errors가 올바르게 설정되어 있는지 확인하십시오.
? 개발 환경에서 Error_Log 의 출력 파일을 예를 들어 일시적으로 설정할 수 있습니다.
ini_set('error_log', '/tmp/my_php_debug.log');