PHP 오류를 오류 로그 파일 대신 데이터베이스에 기록할 수 있습니까?
PHP 오류는 일반적으로 표준 error_log 파일에 기록됩니다. 그러나 보다 쉬운 추적 및 분석을 위해 데이터베이스에 저장하는 것이 바람직할 수 있습니다. 이는 사용자 정의 오류 핸들러를 생성하지 않고는 직접적으로 가능하지 않지만 단일 전역 변경으로 달성할 수 있습니다.
사용자 정의 오류 핸들러 구현
제어의 핵심 오류를 처리하는 방법은 사용자 정의 오류 처리기를 만드는 것입니다. 이는 콜백 함수를 인수로 사용하는 set_error_handler() 함수를 사용하여 수행할 수 있습니다. 콜백 함수에는 다음 서명이 있어야 합니다.
function error_handler($errno, $errstr, $errfile, $errline) {}
콜백 함수 내에서 데이터베이스에 기록할지 여부를 포함하여 각 오류를 처리하는 방법을 결정할 수 있습니다.
MySQL에 오류 로깅 예
다음 코드는 PHP 오류를 MySQL 데이터베이스에 기록하는 사용자 정의 오류 핸들러의 예를 보여줍니다.
function myErrorHandler($errno, $errstr, $errfile, $errline) { // Establish connection to MySQL database $conn = mysqli_connect("hostname", "username", "password", "database"); // Prepare SQL query to log error $query = "INSERT INTO error_log (number, string, file, line) VALUES (?, ?, ?, ?)"; $stmt = mysqli_prepare($conn, $query); // Bind parameters to SQL query mysqli_stmt_bind_param($stmt, "isss", $errno, $errstr, $errfile, $errline); // Execute SQL query to log error mysqli_stmt_execute($stmt); // Close database connection mysqli_close($conn); // Don't execute PHP internal error handler return true; } // Set user-defined error handler $old_error_handler = set_error_handler("myErrorHandler");
사용자 정의 오류 처리기를 사용하면 모든 PHP 오류는 MySQL 데이터베이스에 대한 로깅을 포함하여 사용자 정의 오류 처리 논리를 통해 라우팅됩니다.
위 내용은 로그 파일 대신 데이터베이스에 PHP 오류를 저장할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!