Redirigir errores PHP a la consola Docker o consola de Linux

Tiempo de lectura: < 1 minuto

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');

Deja un comentario