Comunidad de diseño web y desarrollo en internet online

Log de errores en PHP

Un log de errores en PHP nos permitirá detectar cuándo se ha producido un error para corregirlo y evitar que se repita en el futuro.

Para crear un log, abriremos el archivo en modo 'a' (escritura al final) y escribiremos el error indicando la fecha, para simplificar el trabajo lo podemos incluir todo en una función:

Código :

<?php
function error($numero,$texto){
$ddf = fopen('error.log','a');
fwrite($ddf,"[".date("r")."] Error $numero: $texto\r\n");
fclose($ddf);
}
?> 


Una vez declarada la función, sólo tendremos que llamarla de la siguiente manera cuando se produzca un error para que se guarde en error.log:

Código :

<?php
// Si no existe la cookie sesion
if(!isset($_COOKIE['sesion'])){
// Guardamos un error
error('001','No existe la cookie de sesion');
}
?> 


De esta manera, cada vez que un usuario entra a esta página sin la cookie sesión, se almacena una nueva línea en el fichero indicando:

[fecha] Error 001: No existe la cookie de sesion


Vamos a ver ahora cómo podemos mejorar esto, de manera que, además de poder grabar los errores que nosotros definamos en nuestro sitio, nos almacene los errores producidos durante la ejecución del script php.

Esto lo conseguiremos indicando al intérprete Zend que llame a la función error() cada vez que el código PHP contenga un error con la función set_error_handler:

Código :

<?php
set_error_handler('error');
?> 


Entonces, el código completo nos queda de la siguiente manera:

Código :

<?php
function error($numero,$texto){
$ddf = fopen('error.log','a');
fwrite($ddf,"[".date("r")."] Error $numero:$texto\r\n");
fclose($ddf);
}
set_error_handler('error');
?> 


Y de esta manera damos por finalizado nuestro script para generar un log de errores personales y de PHP.
Este artículo es una copia de otro artículo original. El contenido de Cristalab es aportado por sus usuarios y tardamos en encontrar los plagios, los cuales NO aprobamos ni apoyamos. Si tienes la fuente original de este artículo, posteala en los comentarios

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate