Log 4 PHP

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

Manual de LOG4PGP

Ornella Bombaert Costa

Manual de LOG4PGP
Ornella Bombaert Costa

Resumen
El objetvo de este manual es la breve introduccin de log4php. Se ver un ejemplo muy sencillo de este, con los fallos que se han encontrado al ir realizandolo.

Tabla de contenidos
1. Introduccin ............................................................................................................. De dnde viene log4php? ..................................................................................... Qu es log4php? ................................................................................................. 2. Partes de log4php ...................................................................................................... Loggers ............................................................................................................... Appenders ........................................................................................................... Layouts ............................................................................................................... 3. Tipos de errores ........................................................................................................ 4. Implementacin ......................................................................................................... El archivo de Configuracn .................................................................................... Ejemplo ....................................................................................................... Partes .......................................................................................................... 5. Script ...................................................................................................................... 6. Posibles errores ......................................................................................................... Errores sintcticos ................................................................................................. Otros errores ........................................................................................................ 1 1 1 2 2 2 2 3 4 4 4 4 6 7 7 7

iii

Captulo 1. Introduccin
De dnde viene log4php?
Es una versin del paquete Apache log4j portado a PHP. Deberemos descargarnos las librerias (.tar): Podemos descargar apache-log4php 2.0 desde aqu. [http://apache.rediris.es//logging/log4php/2.0.0/ apache-log4php-2.0.0-incubating-src.tar.gz]

Qu es log4php?
Permite a los desarrolladores de software elegir la salida y el nivel de granularidad de los mansajes o "losgs". La configuracin de salida y granularidad de los mensajes es realizada mediante el uso de archivos de configuracin externos. Log4php es un potente mecanismo de loggins que te permite usar un fichero de configuracin para especificar que tipos de mensaje quieres enviar a varios destinos (por ejemplo: fichero, email, base de datos...). Esto hace que sea fcil cambiar que mensajes estan logged o donde hay que enviarlos sin necesidad de meter cdigo en la aplicacin.

Captulo 2. Partes de log4php


Hay tres conceptos principales en log4php: loggers, appenders y diseos. Estos tres componentes trabajan juntos para registrar los mansajes segn el tipo de mensaje y el nivel, y para controlar el formato que tienen estos mensajes y la forma en la que se ha informado de ellos.

Loggers
Son los registradores. Es el componente que se encargar de la salicitud de registro, y del registro de esta. En un proyecto dado, cada clase puede tener un logger individual, o compartir un mismo logger entre diferentes clases. Recibir el nombre de la clase que duespues se va a usar para el registro.

Appenders
Son los sencargados de modificar el destino o destinos de salida, es decir determinan donde se registran los mensajes enviados. Las preguntas del logger son enviados a muchos destinatarios, es son los denominados appenders.

Layouts
Se trata del diseo. Este permitir modificar el formato de salida. Cada appender tiene asociado un diseo, y todos los mensajes registrados por el appender usarn este diseo. Pueden haber algunos appenders que no requieran diseo, por ejemplo el LoggerApenderPDO no requiere un diseo, ya que la salida no esta en forma de cadena.

Captulo 3. Tipos de errores


Para poder especifocar distintos niveles de error, log4php tiene definidos 6 errores diferentes, lo sordenaremos de menor detalle a mayor detalle de los errores: FATAL se utiliza para mensajes crticos del sistema, generalmente despus de guardar el mensaje el programa abortar. ERROR estos eventos afectan al programa pero lo dejan seguir funcionando. WARN Se utiliza para mensajes de alerta sobre eventos que se desea mantener constancia, pero que no afectan al correcto funcionamiento del programa. INFO mensajes informativos que destacan los avances de la aplicacin. Se mostrar por pantalla las operaciones que va realizando archivo por archivo. DEBUG se utiliza para escribir mensajes de depuracin. Este nivel no debe estar activado cuando la aplicacin se encuentre en produccin. TRACE el grano ms fino de eventos informativos, se utiliza para mostrar mensajes con un mayor nivel de detalle que debug.

Captulo 4. Implementacin
Para comenzar deberemos haber descargado las librerias que necesitamos, luego descomprimir y colocar el siguiente directorio /src/main/php en el directorio donde vayamos a trabajar. Recordar que en el directorio que queramos trabajar, habr que dar permisos de escritura, para evitar posteriores errores de denegacin de permisos.

El archivo de Configuracn
El archivo de configuracin, como ya hemos dicho anteriormente, se trata de un archivo .xml.

Ejemplo
Veamos un pequeo ejemplo de este: <?xml version="1.0" encoding="UTF-8"?> <log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/"> <appender name="myConsoleAppender" class="LoggerAppenderConsole" /> <appender name="myFileAppender" class="LoggerAppenderFile"> <layout class="LoggerLayoutTTCC" /> <param name="file" value="myLog.log" /> </appender> <logger name="Foo"> <appender_ref ref="myFileAppender" /> </logger> <root> <level value="DEBUG" /> <appender_ref ref="myConsoleAppender" /> </root> </log4php:configuration>

Partes
Appenders
Encontramos dos Appenders distintos.

Appendes para la consola


El primer appender que encontramos: Tiene un nombre para identificarlo, en este caso myConsoleAppender. Tiene una clase que especifica que calse de appender se utilizar para atender las solicitudes. Ya que queremos mostrar por consola, en este caso utilizaremos LoggerAppenderConsole.

Appender para un archivo


El segundo appender, El nombre que lo idenfitica es myFileAppender.

Implementacin

Ya que queremos registrar en un archivo, este appender utilizar la clase LoggerAppenderFile. Tiene un diseo asociado (layout), que tendr un formato diferente de los eventos de registro, en este caso LoggerLayoutTTCC, lo que hace es indicar una fecha y hora de creacin del archivo. Aqui se muestra la diferencia entre la salida de el archivo myLog3.log, sin LoggerLayoutTTCC, y el del archivo myLog5.log con LoggerLayoutTTCC:

Por ltimo sobre este appender comentar que myLog.log. es el nombre del archivo que se crear.

Root
El appender consola est relacionado con el registrador raiz.

Logger
El appender archivo est vinculado con el registro llamado Foo, este tambin heredar appenders del registrador raiz(el appender consola en este caso). En otras palabras, el registro de sucesos enviados a un registrador de nombre Foo podr acceder tanto a la consola como al archivo.

Captulo 5. Script
Veamos un pequeo ejemplo de un script muy basico que utiliza nuestro archivo de configuracin. <?php // Replace the path with where you installed log4php require 'php/Logger.php'; // Tell log4php to use our configuration file. Logger::configure('log4conf.xml'); // Fetch a logger, it will inherit settings from the root logger $log = Logger::getLogger('Foo'); // Start logging //$log->trace("My first message."); $log->debug("My second message."); $log->info("My third message."); $log->warn("My fourth message."); $log->error("My fifth message."); $log->fatal("My sixth message."); ?>

// // // // //

// Not logged because TRACE < WARN Not logged because DEBUG < WARN Not logged because INFO < WARN Logged because WARN >= WARN Logged because ERROR >= WARN Logged because FATAL >= WARN

require, lleva detrs la ruta donde se encuantran las librerias necesarias que ya hemos descargado anteriormente, ruta/Logger.php. Logger::configure('log4conf.xml'); Donde log4conf.xml, es el archivo de configuracin antes creado.

Captulo 6. Posibles errores


Al hacer este sencillo ejemplo, nos hemos encontrado con algunos posibles errores fciles de resolver.

Errores sintcticos
Lo primero que debemos hacer es eliminar los posible errores sintcticos que hayamos cometido. Abriremos una nueva consola, entrando como root con sudo -s y la contrasea correspondiente, con el siguiente comando, tail -f /var/log/apache2/error.log , podemos ver en que fichero encontramos el error,

Otros errores
Un posible error es el de la falta de permisos, si no hemos dado los permisos adecuados al directorio donde esta intentado escribir. En este caso intenta colocar el archivo myLog.log: [[error] [client 127.0.0.1] PHP Warning: fopen(myLog.log): failed to open stream: Permission denied in /home/ornella/public_html/php/appenders/LoggerAppenderFile.php on line 77] Lo solucionaremos dando los permisos correspondientes al directorio donde este intentando escribir.

También podría gustarte