Crear logs en Joomla

Una de las carecterísticas que puede resultar interesante a la hora de crear componentes, es la generación de logs. Así podemos guardar de uan manera sencilla un registro de las incidencias que se están produciendo en nuestro componente. Con lo que además de mantener al usuario informado, podemos comprobar si nuestra aplicación pasa pro ciertos lugares indeseados.

Para ello joomla dispone de una bateria de clases que nos van a facilitar muchísimo la vida. Para el ejemplo vamos a usar el sistema de LOG a archivos “formattedtext”, aunque también se podrían guardar los LOGS en la BBDD. Para poder hacer uso de estas clases, debemos importar la libreria que se encarga de los logs.

jimport('joomla.log.log');

Una vez importamos la libreria ya podemos empezar a hacer uso de la clase JLog, la cual nos provee de unos métodos estáticos y unas contantes para poder parametrizar nuestro log. Lo primero que vamos a ver, son las constantes de las que dispone la clase: (‘ALL’,’EMERGENCY’,’ALERT’,’CRITICAL’,’ERROR’,’WARNING’,’NOTICE’,’INFO’,’DEBUG’). Estas constantes definen los diferentes tipos de errores, que vamos a poder a poder almacenar en nuestro log. Una vez explicado esto, vamos a ver cómo proceder para ir creando nuestro primer log.

El primer método que debemos utilizar es “addLogger”, que espera tres posibles parámetros.

  1. Una lista con las diferentes opciones de configuración del log.
  2. Los tipos de errores que vamos a aceptar; es decir debemos hacer uso de las constantes ya explicadas.
  3. El tipo de error que vamos a almacenar en nuestro log.

De todos sólo el primer parámetro es obligatorio, aunque nada nos impide pasar un array vacío ;). El segundo método a utilizar es el método “add”, que es quien efectivamente guarda el registro de log. Esté metodo espera 4 parámetros, aunque sólo el primero de ellos es obligatorio.

  1. Un objeto “JLogEntry”, o bien un “String” que indique que error se ha producido.
  2. El tipo de nuestro error, que debe pertenecer a una de las constantes arriba explicadas. Si no se indica, por defecto se utiliza “INFO”.
  3. Un “String” que indique la categoría de nuestra entrada; normalmente el nombre del componente.
  4. La fecha en la que se produce la entrada en el archivo.

Crear la primera entrada en el LOG

Despues de esta breve explicación, lo mejor es ver algo de código para asentar todo lo que hemos visto.

JLog::addLogger(array());
JLog::add(JText::_('SOY_EL_TEXTO_DEL_ERROR'));

Con esta primera aproximación, estamos simplemente escribiendo en nuestro log el texto indicando, el tipo de error será “INFO” y la fecha. Podemos ver el ejemplo aqui:

#<?php die('Forbidden.'); ?>
    #Date: 2013-04-29 09:56:32 UTC
    #Software: Joomla Platform 11.4.0 Stable [ Brian Kernighan ] 03-Jan-2012 00:00 GMT

    #Fields: datetime                      priority    category            message
            2013-04-29T09:56:32+00:00        INFO        -        SOY_EL_TEXTO_DEL_ERROR

Pero, ¿dónde se guarda este Log?. Si no indicamso lo contrario el sitio por defecto es dentro de la carpeta “/logs” en el archivo “error.php”. De todas formas estas opciones pueden cambiarse. De hecho en este nuevo ejemplo, vamos a crear un nuevo archivo de Logs, donde vamos a guardar todos los mensajes que queramos almacenar de nuestro componente. De esta forma podemos ordenar de uan manera más logica nuestros Logs.

JLog::addLogger(array('text_file' => 'com_helloworld.errors.php'),JLog::ALL,'com_helloworld');
JLog::add(JText::_('SOY_EL_TEXTO_DEL_ERROR'), JLog::WARNING, 'com_helloworld');

En esta nueva aproximación hemos hecha algo bastante diferente a la aproximación anterior. Aquí estamos generando un nuevo archivo llamado “com_helloworld.errors.php”, en el que únicamente vamos a guardar entradas del tipo ‘com_helloworld’, independientemente de su importancia. Es muy importante aclarar que en la llamada al segundo método, hay que indicar la categoría ‘com_helloworld’, ya que si no no se almacenará la entrada. Repito que hemos restringido las entradas ha esta categoría. Los parametros que podemos pasar al método “addLogger” en su primer argumento son:

  • text_file: Cómo hemso visto, no permite crear un nuevo archivo para nuestro Log.
  • text_file_path: Nos permite cambiar la ruta ha nuestros Logs.
  • text_file_no_php: Si añadimos este valor, estaremos quitando la sentencia PHP de nuestro archivo.
  • text_entry_format: Podemos modificar el formato en el que se va a mostrar las lista de entradas.

Espero que esta pequeña aclaración sobre como crear logs en joomla, te resulte útil.

Esta entrada fue publicada en Componentes. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s