Commit inicial con archivos existentes
This commit is contained in:
56
includes/error_handler.php
Executable file
56
includes/error_handler.php
Executable file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
// Configuración de manejo de errores
|
||||
function customErrorHandler($errno, $errstr, $errfile, $errline) {
|
||||
$logFile = __DIR__ . '/../logs/php_errors.log';
|
||||
|
||||
// Definir los tipos de error que queremos registrar
|
||||
$error_types = [
|
||||
E_ERROR => 'ERROR',
|
||||
E_WARNING => 'WARNING',
|
||||
E_PARSE => 'PARSING ERROR',
|
||||
E_NOTICE => 'NOTICE',
|
||||
E_CORE_ERROR => 'CORE ERROR',
|
||||
E_CORE_WARNING => 'CORE WARNING',
|
||||
E_COMPILE_ERROR => 'COMPILE ERROR',
|
||||
E_COMPILE_WARNING => 'COMPILE WARNING',
|
||||
E_USER_ERROR => 'USER ERROR',
|
||||
E_USER_WARNING => 'USER WARNING',
|
||||
E_USER_NOTICE => 'USER NOTICE',
|
||||
E_STRICT => 'STRICT NOTICE',
|
||||
E_RECOVERABLE_ERROR => 'RECOVERABLE ERROR',
|
||||
E_DEPRECATED => 'DEPRECATED',
|
||||
E_USER_DEPRECATED => 'USER DEPRECATED'
|
||||
];
|
||||
|
||||
$error_type = $error_types[$errno] ?? 'UNKNOWN';
|
||||
$error_message = "[" . date('Y-m-d H:i:s') . "] $error_type: $errstr in $errfile on line $errline\n";
|
||||
|
||||
// Escribir en el archivo de log
|
||||
error_log($error_message, 3, $logFile);
|
||||
|
||||
// No ejecutar el gestor de errores interno de PHP
|
||||
return true;
|
||||
}
|
||||
|
||||
// Función para registrar excepciones no capturadas
|
||||
function customExceptionHandler($exception) {
|
||||
$logFile = __DIR__ . '/../logs/php_errors.log';
|
||||
$error_message = "[" . date('Y-m-d H:i:s') . "] EXCEPTION: " . $exception->getMessage() . " in " .
|
||||
$exception->getFile() . " on line " . $exception->getLine() . "\n";
|
||||
error_log($error_message, 3, $logFile);
|
||||
|
||||
// Mostrar un mensaje genérico al usuario
|
||||
if (!headers_sent()) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
}
|
||||
echo "Ha ocurrido un error inesperado. El administrador ha sido notificado.";
|
||||
}
|
||||
|
||||
// Establecer manejadores de errores
|
||||
set_error_handler('customErrorHandler');
|
||||
set_exception_handler('customExceptionHandler');
|
||||
|
||||
// Mostrar errores en pantalla solo en entorno de desarrollo
|
||||
ini_set('display_errors', 0);
|
||||
ini_set('log_errors', 1);
|
||||
ini_set('error_log', __DIR__ . '/../logs/php_errors.log');
|
||||
Reference in New Issue
Block a user