Saltar al contenido
Portada » Tutorial Log4j

Tutorial Log4j

Este tutorial de Log4j está diseñado tanto para iniciarse como para profesionales. Log4j es un framework de logging rápido, confiable y flexible escrito en Java.

Los sistemas de logging lo que hacen es registrar el estado de un sistema en tiempo de ejecución. Los logs son usados para capturar y persistir datos importantes y hacerlos disponibles para su análisis.

Ventajas del logging

  • Rápida depuración
  • Diagnóstico de problemas
  • Fácil mantenimiento
  • Ahorro de coste y tiempo

Características de Log4j

  • Es thread-safe, seguro en el manejo de hilos.
  • Optimizado para ser rápido.
  • Está basado en una jerarquía de niveles de log.
  • Soporta la internacionalización.
  • Soporta múltiples salidas de appenders por logger.
  • No está restringido a un conjunto predefinido de instalaciones.
  • El formato de salida del log puede ser fácilmente modificado extendiendo la clase Layout.
  • Diseñado para gestionar excepciones Java.
  • El comportamiento del logging puede establecerse en tiempo de ejecución usando un fichero de configuración.

Arquitectura de Log4j

Log4j follows a layered architecture where each layer is used to provide different objects to perform different tasks. This layered architecture makes the design easy and flexible to extend in the future.

There are two types of objects available in the log4j framework:

Log4j tiene una arquitectura en capas, cada capa se usa para proveer distintos objetos para ejecutar distintas tareas. Este modelo en capas hace que sea un diseño fácil y flexible de extender en un futuro.

Hay dos tipos de objetos disponibles en el framework de log4j: objetos core y objetos de apoyo.

Objetos Core

Son objetos obligatorios del framework. Todos los objetos core son necesarios para usar el framework.

Logger: Este objeto es el responsable de recoger la información de logging, se almacenan en la jerarquía del espacio de nombres. Métodos de la clase Logger encargados de escribir el estado de la aplicación: debug(), info(), warn(), error() y fatal().

Appender: Componente de la capa baja. Es responsable de publicar la información de logging en distintos destinos: bases de datos (JDBCAppender), ficheros (FileAppender), consola (ConsoleAppender), remoto (SocketAppender), correo (SMTPAppender), etc. Pero a diferencia de Logger se trata de una interfaz, no una clase.

Layout: Estos objetos se usan para formatear la salida del log con diferentes estilos. Por ejemplo tenemos SimpleLayout, PatternLayout, HTMLLayout y XMLLayout.

Objetos de apoyo

Son objetos opcionales del framework.

Level: Define la prioridad y granularidad de la información de los logs. Hay siete niveles definidos por defecto: OFF, DEBUG, INFO, ERROR, WARN, FATAL y ALL.

Filter: Toma decisiones adicionales acerca de si la información capturada debe incluirse en el log o no.

ObjectRenderer: Este objecto está especializado en proveer una representación como String de distintos objetos pasados al framework de logging.

LogManager: Se usa para gestionar el framework de logging. Lee los parámetros de la configuración inicial de un fichero de configuración o una clase de configuración.

Ejemplo de uso

Código Java:

import org.apache.log4j.Logger;  
  
import java.io.*;  
import java.sql.SQLException;  
import java.util.*;  
  
public class Ejemplo {  
  

   static Logger log = Logger.getLogger(Ejemplo.class.getName());  
     
   public static void main(String[] args)throws IOException,SQLException{  
      log.debug("Este es un mensaje a nivel de debug");  
      log.info("Este es un mensaje a nivel de info");  
   }  
}  

Fichero log4j.properties

# logger raiz 
log = /usr/home/log4j   
log4j.rootLogger = DEBUG, FILE  
  
# file appender  
log4j.appender.FILE=org.apache.log4j.FileAppender  
log4j.appender.FILE.File=${log}/log.out  
  
# definicion del layout
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
log4j.appender.FILE.layout.conversionPattern=%m%n  

Dependencia maven:

<dependency>  
    <groupId>log4j</groupId>  
    <artifactId>log4j</artifactId>  
    <version>1.2.17</version>  
</dependency>  

AsuntoDescripción
Tutorial básico y sintaxisTutorial básico Java y sintaxis. Aprende los fundamentos del lenguaje.
Hilos (Threads)Aprende a manejar hilos y las cuestiones básicas de la concurrencia
Funciones LambdaAquí te enseñamos las nociones más importantes para arrancas con funciones lambda
PalíndromosPrograma de ejemplo para el uso de palíndromos en Java.
Máquina Virtual de JavaTe explicamos el funcionamiento de la máquina virtual de java (Java Virtual Machine – JVM)
JDK, JRE y JVMDiferencias entre el JDK, JRE y JVM.
Mejores libros Java en EspañolHazte con los mejores libros Java para aprender paso a paso y profundizar en las mejores prácticas
TensorFlowManejo del API de TensorFlow para la construcción de grafos de operaciones y su ejecución
Tutorial Log4jTutorial para el manejo de Log4j, herramienta ágil y flexible para la gestión de Logs en Java
Java SecurityEntiende y aplica las posibilidades que da Java para mantener la seguridad
Tutorial JConsoleAprende los conceptos básicos de monitorización de procesos Java con JConsole
JavaFXTutorial de JavaFX, librería gráfica moderna para construcción de GUIs en móvil, escritorio y web.
Estructuras de datos en JavaExplicación y ejemplos de las estructuras de datos más importantes: listas, pila, cola, arbol.
JavaapiConjunto de clases, interfaces, métodos y paquetes que forman parte de la plataforma Java estándar
Algoritmo HuffmanMétodo eficiente para codificar datos, asignando códigos más cortos a los caracteres más frecuentes