Particularmente durante el período de desarrollo y pruebas, es importante mantener un registro de lo que va ocurriendo a nivel de código, especialmente cuando las pruebas las realiza un tercero. En esos casos es difícil que el usuario de pruebas entregue una descripción concreta de lo que intentaba hacer y qué fue lo que realmente sucedió.
Especialmente en ambientes de producción, en donde se ocultan los errores en pantalla y a vista del usuario final todo funciona bien, es útil implementar algún método de registrar un log de las distintas acciones y/o errores que pudiesen ocurrir. ¿Cómo se puede controlar este tipo de situaciones?
A continuación una descripción detallada:
Es relativamente común mantener en un único archivo todas las especificaciones y configuraciones del sitio, y con la instrucción
include() se le invoca cada vez que sea necesario. Por lo tanto, para implementar un log necesitamos pasar por dos etapas:
1. Definir el log, 2. Registrar acciones en el log.
Acá, los ejemplos de cada paso:
1. con la función
ini_set() especifico cómo se visualizarán los errores por pantalla, establezco un archivo plano TXT como log y finalmente indico que iré agregando cualquier nivel de errores.
ini_set("display_errors","0");
ini_set("log_errors","1");
ini_set("error_log", ROOT_LOG."/error_log.txt");
error_reporting(E_ALL); 2. luego, para disparar una marca en el log ejecuto la linea que sigue. Ojo con los dos parámetros que recibe: la descripción del mensaje el nivel del error.
trigger_error("Inicio de Sesion de Usuario (".$variableNombreUser.").",E_USER_NOTICE); ¿Cómo queda esa marca en el log? A continuación un ejemplo....
[06-Jul-2009 00:13:17] PHP Notice: Inicio de Sesion de Usuario (VALOR_VARIABLE). in URL_ARCHIVO_QUE_GATILLA_LOG/inApp.php on line 13 (las dos cadenas en mayúsculas y con guión bajo serían reemplazadas con el valor pasado en la variable y la url específica del servidor en el que se implementa el log. Importante: no olvidar definir los permisos respectivos para el archivo de destino del log, para que se realice la escritura.)
Más referencias de interés:
*
Envio de Error *
Constantes de Niveles de Errores