Logs en Java

7 septiembre 2008 at 4:38 pm Deja un comentario

Los que conocemos Java desde antes de la versión 1.4 sabemos que no siempre ha existido un API de logs dentro de la JDK. En aquellos no tan lejanos tiempos utilizábamos otras librerías para sacar nuestras trazas. La más utilizada sin duda: log4j de la Apache Software Foundation.

Por eso, cuando en la Java 1.4 sacaron el API de logs integrado (a veces llamado JUL por Java Util Logging), además muy inspirado en log4j pero sin llegar a su nivel, muchos seguimos fieles a log4j.

Poco después apareció commons-logging, también desarrollado dentro de la Apache Software Foundation, que venía a ser una capa de abstracción que permitía utilizar tanto el JDK Logging como log4j por debajo. Personalmente a mí me pareció una capa más en un punto que no veía tan crítico dentro de un proyecto y no lo llegué a utilizar mucho, aunque si goza de una buena implantación.

Y finalmente llego a lo que es el germen de esta entrada, que es logback, un proyecto también libre que intenta ser una actualización de log4j. De hecho la cara más visible de logback es también un importante miembro de log4j: Ceki Gülcü. Respecto a log4j, logback promete un aumento de rendimiento a la vez que una disminución en el consumo de recursos. Como ejemplo algunas frases tomadas de presentaciones de logback:

  • Determinar si se debe sacar la traza para una sentencia: 3 ns en logback frente a 30 ns en log4j.
  • Crear un Logger: 13 ns de logback por 23 ns de log4j.
  • Localizar un Logger: 94 ns en logback frente a los 2234 ns de log4j.
  • Tamaño de un Logger: 40 bytes en logback y 140 bytes en log4j.

Sin duda las mejoras parecen existir, algo que puede ser lógico, ya que logback ha sido diseñado desde cero teniendo en cuenta la experiencia de muchos años trabajando en log4j.

Logback implementa SLF4J (Simple Logging Facade for Java), una nueva abstracción que permite intercambiar posteriormente el sistema de logging utilizado. Proporciona un API que productos como logback implementa y también proporciona unos puentes para pasar de forma sencilla de los sistemas más antiguos a SLF4J. Por ejemplo proporcionan un puente para log4j, de forma que si en una aplicación existente sustituimos el jar de log4j por el del puente, sin tocar nuestro código estaremos “logeando” a través de SLF4J y la implementación que utilicemos (¿logback?).

Entre los proyectos que utilizan SLF4J aparecen varios de renombre como: Jetty, Geronimo, Tapestry, Hibernate o Dbunit.

Yo creo que en mi próximo proyecto utilizaré SLF4J y logback. ¿Y vosotros?, ¿os he animado?.

Anuncios

Entry filed under: Java. Tags: , , .

Blogday 2008 Utilización de JQuery Cycle Plugin

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

Trackback this post  |  Subscribe to the comments via RSS Feed


Mi perfil

View Miguel Orbegozo's profile on LinkedIn

Feedjit

Feeds

Otros…

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog

Bitacoras.com

Add to Technorati Favorites


A %d blogueros les gusta esto: