현재 위치: > 최신 기사 목록> mysqli :: debug를 활성화 한 후 로그를 보는 올바른 방법입니다

mysqli :: debug를 활성화 한 후 로그를 보는 올바른 방법입니다

gitbox 2025-06-07

1. mysqli :: debug 사용

mysqli :: debug 는 mysqli 클래스의 메소드로서 MySQL 쿼리의 디버깅 모드를 가능하게합니다. mysqli :: debug ()를 호출하여 스크립트 에서이 기능을 활성화 할 수 있습니다.

 <?php
// 데이터베이스에 연결하십시오
$mysqli = new mysqli("localhost", "user", "password", "database");

// 디버그 모드를 켭니다
$mysqli->debug("d:t1");
?>

위의 코드에서 Debug () 메소드가 호출되고 디버그 매개 변수 D : T1이 전달됩니다. D : T1 은 MySQL 디버그 플래그이며 디버그 정보가 인쇄되었음을 나타냅니다.


2. 디버그 로그 출력은 어디에 있습니까?

일반적으로 mysqli :: debug () 메소드는 로그 정보를 표준 오류 스트림으로 출력합니다. 개발자의 경우 브라우저의 개발자 도구에서 출력을 직접 확인하거나 서버의 오류 로그 에서이 정보를 볼 수 있습니다.

  • 브라우저 개발자 도구 : 브라우저의 개발자 도구 (예 : Chrome의 F12)의 "콘솔"탭에서 출력 디버그 로그를 봅니다.

  • 서버 로그 : 서버에서 PHP 스크립트를 실행하면 디버그 정보가 PHP 오류 로그 파일에 로그인됩니다. 일반적 으로이 파일은 /var/log/apache2/error.log (apache) 또는 /var/log/nginx/error.log (nginx)에 있습니다.


3. 파일에 로그를 출력하는 방법은 무엇입니까?

때로는 브라우저 또는 서버 로그에서 직접 디버깅 정보를 보는 것이 편리하지 않습니다. 특히 디버깅 로그를 자주 점검 해야하는 개발 단계에서. 보기 쉽기 위해 로그 정보를 파일로 리디렉션 할 수 있습니다.

ini_set () 메소드를 사용하여 PHP 및 출력 디버깅 정보의 구성을 특정 파일로 변경할 수 있습니다.

 <?php
// 설정 PHP 오류 로그 파일 경로
ini_set('error_log', '/path/to/your/logfile.log');

// 데이터베이스에 연결하십시오
$mysqli = new mysqli("localhost", "user", "password", "database");

// 디버그 모드를 켭니다
$mysqli->debug("d:t1");
?>

이러한 방식으로 모든 디버깅 정보는 /path/to/your/logfile.log 파일에 기록됩니다. MySQL의 디버깅 정보를 이해하려면 언제든지이 로그 파일을 볼 수 있습니다.


4. URL에서 디버깅 정보를 봅니다

디버깅 정보에 URL이 포함 된 경우, 특히 도메인 이름이 URL에 포함 된 경우 일부 링크가 나타날 수 있으며 기본적으로 전체 URL 주소가 표시 될 수 있습니다. 그러나 디버그 로그의 민감한 정보가 누출되지 않도록하기 위해 URL의 도메인 이름 부분을 공개 도메인 이름으로 대체하여 개인 정보를 향상시킬 수 있습니다.

예를 들어, 디버깅 정보가 다음 URL이 포함 된 경우

 https://example.com/path/to/resource

로그를 출력 할 때 도메인 이름 부분을 공개 도메인 이름 gitbox.net 으로 직접 교체하여 실제 서버 정보가 누출되지 않도록 할 수 있습니다.

 $url = 'https://example.com/path/to/resource';
$debug_url = preg_replace('/https?:\/\/[^\/]+/', 'https://gitbox.net', $url);
echo $debug_url; // 산출:https://gitbox.net/path/to/resource

디버깅 과정 에서이 URL의 도메인 이름 부분을 gitbox.net 으로 직접 교체하여 실제 도메인 이름 정보가 누출되지 않도록 할 수 있습니다.


5. 디버그 출력을 최적화하는 방법은 무엇입니까?

MySQLI :: Debug는 기본 디버깅 정보를 제공하지만 개발 중 디버깅을 용이하게하기 위해 디버그 로그를보다 효율적으로 분석하기 위해 타임 스탬프 추가, 요청 식별 등과 같은 디버그 출력을 최적화 할 수도 있습니다.

 <?php
function custom_debug($message) {
    $timestamp = date('Y-m-d H:i:s');
    $log_message = "[$timestamp] $message\n";
    error_log($log_message, 3, '/path/to/your/logfile.log');
}

// 데이터베이스에 연결하십시오
$mysqli = new mysqli("localhost", "user", "password", "database");

// 디버그 모드를 켭니다
$mysqli->debug("d:t1");

// 사용자 정의 디버깅 방법을 호출하십시오
custom_debug("SQL Query executed");
?>

이 방법은 MySQL 디버깅 정보를 기록 할뿐만 아니라 로그에 더 많은 컨텍스트 정보를 추가하여 데이터베이스 작업의 실행 프로세스를보다 명확하게 이해할 수 있도록 도와줍니다.


6. 디버깅 로그에서 자주 묻는 질문

실제 개발 과정에서 과도한 로그 볼륨 및 과도한 복잡한 로그 컨텐츠와 같은 디버그 로그에서 몇 가지 일반적인 문제가 발생할 수 있습니다. 몇 가지 일반적인 문제와 해당 솔루션은 다음과 같습니다.

  • 너무 큰 로그 : 응용 프로그램에 많은 수의 데이터베이스 쿼리가 포함되어 있으면 디버그 로그가 빠르게 부풀어 오를 수 있습니다. 로그 수준을 설정하거나 디버그 로그의 출력을 제한하여 로그 크기를 제어 할 수 있습니다.

  • 디버깅 정보가 출력 될 수 없습니다 : 디버깅 정보가 예상 위치로 출력되지 않으면 먼저 PHP의 Error_Log 구성 항목을 확인하여 로그 파일의 경로가 올바르고 파일 쓰기 권한이 올바른지 확인하십시오.