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:
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.
¿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.
Por RibonKB el 29 de Septiembre de 2011
<?php
function exception_log($exception){
$ddf = fopen('error.log','a');
fwrite($ddf,"[".date("r")."] Error".$exception->getCode()." :".$exception->getMessage()."\r\n");
fclose($ddf);
}
set_exception_handler('exception_log');
?>
Saludos.
Por daso el 29 de Septiembre de 2011
catch (Exception $e) {
error_log($e->getMessage()."\n",3,"../log/Error.log");
error_log("Este es el error tal",3,"../log/Error.log");
throw $e;
}
para que lo maneje en ese archivo Error.log ?
Por jdiaz0017 el 02 de Marzo de 2016
asi lo solucionan:
agreguen esta linea de código en una clase PHP o archivo PHP que sea esencial al momento de cargar su aplicacion web o proyecto en general (YO PERSONALMENTE LO UBIQUE EN UN ARCHIVO PHP DE CONSTANTES DE MI APLICACION):
date_default_timezone_set('America/Bogota');
una vez que coloquen esta linea donde ustedes consideren correcto, pueden ver nuevamente el LOG de errores segun la funcion y aparecerá la hora correcta
¿DONDE CONSULTO EL RESTO DE PAISES SEGUN MI ZONA?
enlace zona horaria:
http://us.php.net/manual/en/timezones.america.php