En esta entrada voy a hablar de «error_log» la opción para almacenar información tales como variables para depurar, guardar errores, comprobar resultados o queries … en PHP.
Uso básico de error_log
Normalmente, durante el desarrollo, uno siempre necesita para «debuggear».
Esto es ir almacenando variables en un log para ir comprobando el estado del sistema, o también para comprobar o dejar rastro de por dónde va pasando la aplicación en desarrollo.
Para almacenar algo en el log usando PHP, se hace de una manera muy simple, usando la función de PHP «error_log«.
1 2 3 4 5 6 |
// Variable a salvar $var = "HOLA"; // Dirección del fichero de log que queremos $path = "log.log"; // Salvar en el log error_log($var, 3, $path); |
A continuación vamos a explicar el código.
‘$var’ es una variable con lo que queremos salvar en el log, entraré más en profundidad más adelante, para salvar objetos complejos y algunas situaciones excepcionales.
$path es la ruta o path del fichero donde vamos a almacenar $var.
Finalmente, llamando a «error_log($var, 3, $path);» se nos salvará $var en nuestro fichero.
NOTA:
Usamos ‘3’ por defecto para indicarle a la función de «error_log» que el destino es un fichero de texto.
Puedes encontrar más información de error_log en la página oficial de error_log en PHP.net.
Usando error_log para guardar objetos de forma legible
Pero el código anterior, solo nos sirve para almacenar tipos simples.
La mayoría de las veces puede no sernos del todo útil.
Pero por defecto no se guardará de una manera legible al usuario, por lo que necesitamos adaptar un poco el uso que hacemos de error_log.
Para ello, vamos a hacer uso de «print_r» para poder almacenar así, de forma fácil de leer y de entender para el usuario, cualquier tipo de objeto o array.
Un ejemplo usando el siguiente código en PHP:
1 2 3 4 5 |
// Código de ejemplo para almacenar un objeto en el log $test_object = new stdClass(); $test_object->var = "HOLA "; $test_object->nombre = " PEDRO"; error_log(print_r($test_object, true), 3, "test_log.log"); |
Usando el código de arriba, tendremos en nuestro fichero de log un resultado como en la imagen siguiente.

En caso de no usar «print_r» no se guardaría nada en el fichero de log.
Usando «print_r» con el objecto a almacenar y el «prettify» marcado a true, esto nos devolverá un string del objeto de una manera fácil de leer y comprender para usuarios. Algo muy útil, sobre todo durante el desarrollo de una aplicación.
Más información de «print_r» en la página oficial de PHP sobre la función print_r.
Creando una función personalizada de error_log
Durante el desarrollo es normal usar muchas veces las llamadas a funciones de log.
Una manera de encapsular y simplificar el código es realizar una función para ello, lo cual será más fácil de recordar y de usar, también evitaremos repetir código en distintos sitios y tendremos un código usable, reutilizable, más limpio y elegante.
Un ejemplo podría ser el siguiente.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// Función para almacenar una variable en el fichero de log. public function guardar_en_log($data, $path = "log.log") { error_log(print_r($data, true), 3, $path); error_log("\xA", 3, $path); } // Ejemplos de uso. // Guardar un string en el fichero de log por defecto de la función. guardar_en_log("HOLA"); // Guardar una variable en el fichero de log por defecto de la función. guardar_en_log($var); // Guardar un string en el fichero "test_log.log". guardar_en_log("HOLA", "test_log.log"); // Guardar una variable en el fichero "test_log.log". guardar_en_log($var, "test_log.log"); |
Como se puede ver, he personalizado una función y he añadido algunos ejemplos de uso.
Por defecto, después de guardar los datos he añadido un salto de línea. Así la siguiente vez que se ejecute la función aparecerá en una nueva línea.
Enlaces de interes
http://php.net/manual/es/function.error-log.php
http://php.net/manual/es/function.print-r.php
Otras entradas similares
- Fechas como string en PHP
- Recortar y redimensionar imágenes en PHP – imagecopyresampled
- Chuletario de GIT
- Errores que hice como programador junior
Juan Ramón González Morales
Soy un blogger con mucha ilusión por las nuevas tecnologías y por compartir y absorber nuevos conocimientos.
UX Designer - Software Engineer.
Latest posts by Juan Ramón González Morales (see all)
- Chuletario de GIT - 18 enero, 2019
- Errores que hice como programador junior - 6 abril, 2018
- Fechas como string en PHP - 14 diciembre, 2017