[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Uso de Commons Logging




Hola a todos,

En nuestro último proyecto J2EE, hemos decidido no emplear Commons
Logging API como teníamos previsto inicialmente, sino invocar
directamente el correspondiente framework de logging (en nuestro caso
log4j).

Commons Logging es un proyecto de Jakarta que permite descubrir en
tiempo de ejecución el framework de logging disponible en el classpath y
utilizarlo. Se emplea con frecuencia por los desarrolladores de
librerías y frameworks (p.ej. Digester y Struts utilizan
commons-logging) para no imponer al usuario final de la librería el uso
de una implementación concreta de logging. Es el usuario quien determina
qué producto de logging utilizará la librería.

A pesar de este aparente valor añadido y de su uso muy extendido, le
encontramos bastantes inconvenientes:

- Introduce una complejidad que en la mayoría de proyectos no está
justificada. Desde el punto de vista de las metodologías ágiles, el
diseño inicial no debe contemplar requisitos o necesidades futuras, que
deben abordarse sólo cuando verdaderamente se planteen.

- Log4j y JDK 1.4 Logging tienen un patrón de uso casi idéntico, con lo
que para conmutar entre uno y otro basta con hacer una sencilla
sustitución en el código fuente.

- Como se trata de abstraer la funcionalidad de diferentes productos,
Commons Logging sólo puede ofrecer el mínimo común denominador de los
diversos frameworks que soporta. Por ejemplo, no dispone de los NDC de
log4j.

- Todo wrapper supone una cierta sobrecarga desde el punto de vista del
rendimiento.

Nuestra conclusión es que commons-logging sólo es útil cuando proteger
nuestro código frente a cambios en el sistema de logging se encuentre
realmente entre los requisitos del proyecto. En caso contrario, su uso
indiscriminado más que fomentar un diseño flexible y elegante, nos
parece que complica innecesariamente.

Nos gustaría conocer vuestra opinión y qué uso hacéis de este o de otros
wrappers con filosofía semejante.

Un saludo,

--
Rafael Luque, rafael.luque@xxxxxxxxxxxxxxx
Orange Software