Inicio > Java > Introducción a Log4j

Introducción a Log4j

Insertar sentencias de log dentro del código es una forma de depuración de bajo nivel.

Niveles de prioridad de los mensajes

Por defecto Log4J tiene 6 niveles de prioridad para los mensajes (trace, debug, info, warn, error, fatal). Además existen otros dos niveles extras (all y off):

Niveles de prioridad (De mayor -poco detalle- a menor -mucho detalle-):

  • OFF: este es el nivel de mínimo detalle, deshabilita todos los logs.
  • FATAL: se utiliza para mensajes críticos del sistema, generalmente después de guardar el mensaje el programa abortará.
  • ERROR: se utiliza en mensajes de error de la aplicación que se desea guardar, estos eventos afectan al programa pero lo dejan seguir funcionando, como por ejemplo que algún parámetro de configuración no es correcto y se carga el parámetro por defecto.
  • WARN: se utiliza para mensajes de alerta sobre eventos que se desea mantener constancia, pero que no afectan al correcto funcionamiento del programa.
  • INFO: se utiliza para mensajes similares al modo “verbose” en otras aplicaciones.
  • DEBUG: se utiliza para escribir mensajes de depuración. Este nivel no debe estar activado cuando la aplicación se encuentre en producción.
  • TRACE: se utiliza para mostrar mensajes con un mayor nivel de detalle que debug.
  • ALL: este es el nivel de máximo detalle, habilita todos los logs (en general equivale a TRACE).


Appenders

En Log4J los mensajes son enviados a una (o varias) salida de destino, lo que se denomina un appender.

Existen varios appenders disponibles y configurados, aunque también podemos crear y configurar nuestros propios appenders.

Típicamente la salida de los mensajes es redirigida a un fichero de texto .log (FileAppender, RollingFileAppender), a un servidor remoto donde almacenar registros (SocketAppender), a una dirección de correo electrónico (SMTPAppender), e incluso en una base de datos (JDBCAppender).

Casi nunca es utilizado en un entorno de producción la salida a la consola (ConsoleAppender) ya que perdería gran parte de la utilidad de Log4J.

Layouts

Permite presentar el mensaje con el formato necesario para almacenarlo simplemente en un archivo de texto .log (SimpleLayout y PatternLayout), en una tabla HTML (HTMLLayout), o en un archivo XML (XMLLayout).

Además podemos añadir información extra al mensaje, como la fecha en que se generó, la clase que lo generó, el nivel que posee… por cada paso

Configuración

Crear archivo log4j.properties en la raiz del proyecto con el siguiente contenido


# Root logger option
log4j.rootLogger=INFO, file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n


# Root logger option
log4j.rootLogger=INFO, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

El primer archivo guarda la traza del log en un archivo. El segundo bloque muestra por consola. Nota que en la primera línea indicamos la visibilidad del log, en este caso es INFO, podíamos haber puesto ALL para ver todos los niveles:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF

Descarga

Hay que descargar la librería de la página de Apache y añadirl el archivo log4j-1.X.X.jar al proyecto en cuestión.

Ejemplo

package codigo.core.main;
import org.apache.log4j.Logger;
public class Ejemplo{
    // LOGGER
    static final Logger logger = Logger.getLogger(Ejemplo.class.getName());
    public static void main(String[] args) {
	 logger.info("Hola esto es una traza");
    }
}

Fuente: Wikipedia

Categorías:Java Etiquetas:
  1. chavalito!
    noviembre 14, 2013 a las 10:50 am

    ¡Gracias!. Muy útil

  1. No trackbacks yet.

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

A %d blogueros les gusta esto: