Hoy vamos a aprender cómo podemos hacer un handler para redirigir los errores PHP a la consola de Linux o Docker.
Lo primero que tenemos que hacer es crear un manejador, podemos llamarlo exception_handler.php
Y vamos a añadir lo siguiente:
<?php function manejarExcepcion($excepcion) { // Obtener información sobre la excepción $mensaje = 'ERR: Se ha producido un error en el sitio web.' . "\n\n"; $mensaje .= 'ERR: Mensaje de error: ' . $excepcion->getMessage() . "\n"; $mensaje .= 'ERR: Archivo: ' . $excepcion->getFile() . "\n"; $mensaje .= 'ERR: Línea: ' . $excepcion->getLine() . "\n"; $mensaje .= 'ERR: Código de estado HTTP: ' . http_response_code() . "\n"; $fechaActual = date('Y-m-d H:i:s'); $cadenaError = $fechaActual . " IP: [" . $_SERVER['REMOTE_ADDR'] . "] " . $mensaje; } // Establecer la función de manejo de excepciones personalizada set_exception_handler('manejarExcepcion');
Esta función nos dará toda la información necesaria para identificar el error, el mensaje de error, el archivo, la línea y el código de error. Además de la fecha y la IP desde dónde nos han llamado.
OJO: debéis poner $_SERVER[‘HTTP_X_REAL_IP’] si usais un proxy inverso, en vez de $_SERVER[‘REMOTE_ADDR’];
Ahora solo tenemos que incluir este fichero en los ficheros que queramos auditar errores realizando un include:
include_once('../extras/exception_handler.php');
Ingeniero en Informática, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.