Saltar al contenido

Log4j2 ¿por qué lo usaría sobre log4j?

Ten en cuenta que en la informática un problema casi siempere suele tener diversas resoluciones, así que nosotros aquí te enseñamos lo mejor y más eficiente.

Solución:

Razones para actualizar de Log4j 1.xa Log4j 2

Actualización: desde agosto de 2015, Log4j 1.x es oficialmente el fin de su vida útil y se recomienda actualizar a Log4j 2. Actualización 2: Log4j 1.2 está roto en Java 9.

  • Soporte de la comunidad: Log4j 1.x no se mantiene activamente, mientras que Log4j 2 tiene una comunidad activa donde se responden preguntas, se agregan funciones y se corrigen errores.
  • Async Loggers: rendimiento similar al registro desactivado
  • Niveles de registro personalizados
  • Vuelva a cargar automáticamente su configuración tras la modificación sin perder los eventos de registro durante la reconfiguración.
  • Soporte lambda de estilo Java 8 para registro diferido
  • Log4j 2 está libre de basura (o al menos poca basura) desde la versión 2.6
  • Filtrado: filtrado basado en datos de contexto, marcadores, expresiones regulares y otros componentes del evento de registro. Los filtros se pueden asociar con los registradores. Puede utilizar una clase Filter común en cualquiera de estas circunstancias.
  • Arquitectura de complementos: fácil de ampliar mediante la creación de componentes personalizados
  • API compatibles: SLF4J, Commons Logging, Log4j-1.xy java.util.logging
  • API de Log4j 2 separada de la implementación de Log4j 2. La API admite más que solo registrar cadenas: secuencias de caracteres, objetos y mensajes personalizados. Los mensajes permiten que las construcciones interesantes y complejas pasen a través del sistema de registro y se manipulen de manera eficiente. Los usuarios son libres de crear sus propios tipos de mensajes y escribir diseños, filtros y búsquedas personalizados para manipularlos.
  • Mejoras de simultaneidad: log4j2 usa las bibliotecas java.util.concurrent para realizar el bloqueo al nivel más bajo posible. Log4j-1.x tiene problemas de interbloqueo conocidos.
  • Configuración vía XML, JSON, YAML, archivos de configuración de propiedades o programáticamente.

Ser consciente

  • Los formatos log4j2.xml y log4j2.properties son diferentes de la sintaxis de configuración de Log4j 1.2
  • Log4j 2 no es totalmente compatible con Log4j 1.x: La API de Log4j 1.2 es compatible con log4j-1.2-api adaptador, pero las personalizaciones que se basan en los componentes internos de Log4j 1.2 pueden no funcionar.
  • Se requiere Java 6 para la versión 2.0 a 2.3. Se requiere Java 7 para Log4j 2.4 y versiones posteriores.

Consejos al actualizar

Problemas comunes que tiene la gente al comenzar con log4j2:

  • Necesita (al menos) log4j-api-2.6.2.jar y log4j-core-2.6.2.jar en su classpath
  • Log4j2 busca un log4j2archivo de configuración .xml, no un archivo de configuración log4j.xml
  • Ubicación del archivo de configuración: colóquelo en la ruta de clase o especifique su ruta con el log4j.configurationFile propiedad del sistema
  • Para depurar la configuración, use al comienzo de su archivo de configuración
  • Recomendaría comenzar con una de las muchas configuraciones de muestra provistas en el manual de log4j2, luego agregar más campanas y silbidos poco a poco.

Si su problema no es uno de los anteriores, muestre su configuración y proporcione más detalles sobre el problema que está experimentando. (No estoy seguro de lo que espera de la configuración automática, esta es una función muy básica que registra eventos de ERROR en la consola si log4j2 no puede encontrar un archivo de configuración. Esto rara vez será suficiente).

Para escribir en su directorio personal, puede usar la búsqueda de propiedades del sistema $sys:PROPERTYNAME. A continuación se muestra una configuración de ejemplo para demostrar:


  
    $sys:user.home/log$date:yyyyMMdd.log
  
  
    
      
    
    
      
        %d %p [%t] %c1. %m%n
      
    
  
  
    
      
      
    
  

Mira esto. En resumen, desde el enlace:

Log4j 2.0 presenta:

  • un nuevo sistema de complementos

  • soporte para propiedades

  • soporte para configuración basada en JSON y recarga automática de su configuración.

Admite muchos marcos de registro existentes, incluidos SLF4J, Commons Logging, Apache Flume y Log4j 1.x, y proporciona una nueva API de programador.

Como dijiste, también es mucho más rápido.

Las desventajas son:

  • log4j 2.0 es muy diferente de log4j 1.x, y la API es en su mayoría incompatible.

  • Difícil de configurar.

Si no necesita ninguna de las nuevas funciones, probablemente esté de acuerdo con la versión anterior de Log4j 1.x.

valoraciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *