2009-06-02 16 views
6

Mi aplicación web usa Java, la implementación JPA de Hibernate (EntityManager) y Spring. ¿Cuáles son mis opciones de registrador y qué recomendarías? Idealmente, la configuración sería simple (un archivo de configuración para Hibernate, Spring y mi código).Registrador recomendado para usar con Java, Hibernate y Spring

+0

duplicados de http://stackoverflow.com/questions/354837/whats-up-with-logging-in-java – Jherico

+0

... tal vez esta Q es específico sobre Hibernate y Spring –

+0

Por desgracia, solo una respuesta menciona algo sobre el uso del registro en un método que tiene una relevancia específica para Spring e Hibernate. En cualquier caso, la verdadera respuesta es 'cualquiera de las implementaciones de registro hará lo que quiera ya que la mayoría de las bibliotecas como Spring o hibernate son independientes de la ejecución de los registros'. – Jherico

Respuesta

13

Al crear aplicaciones a partir de varios marcos, a menudo es necesario ajustar los registradores existentes, ya sean log4j o JUL o JULI o lo que sea. La aplicación estándar para esto es Simple Logging Facade for Java (SLF4J). Incluso si su aplicación no necesita SLF4J ahora, puede que quiera agregar una biblioteca que la necesite, y es su mejor esperanza para un archivo de configuración a largo plazo.

Teniendo esto en cuenta, debe atenerse a los paquetes de registro que admite SLF4J, pero generalmente se reduce a java.util.logging (JUL) o Apache's log4j. Esto ha sido un subject for debate durante algún tiempo y puede encontrar muchas opiniones en ambos lados.

Personalmente, creo que es desafortunado que el registro de Java esté en this situation, y usaré lo que sea que me da el menor dolor para la situación.

7

log4j es el registrador estándar que uso. Puede configurar niveles de registro y archivos de registro por paquete para que Hibernate, Spring y su código puedan ir a los propios archivos de registro.

3

que utilizan la API Apache Commons Logging, con un archivo log4j de configuración (el archivo log4j configuración es simple, fácil para un principiante de entender y tiene numerosos ejemplos para trabajar.

Yo prefiero usar los Commons Logging API debido a que su agnóstico sobre su archivo de configuración. Se puede configurar a través de formatos de archivo para cualquier número de paquetes de registro populares.

Aquí hay una configuración simple de log4j que imprimirá información de depuración para sus propios paquetes, INFO para Spring e hibernate, y WARN para todo lo demás:

# Global logging configuration 
log4j.rootLogger=WARN, stdout 
log4j.category.org.mydomain.org=DEBUG 
log4j.category.org.hibernate=INFO 
log4j.category.org.springframework=INFO 


# CONSOLE appender not used by default 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d %-5p [%t] %c - %m%n 
5

Nadie fue despedido por elegir log4j.

También echa un vistazo a slf4j.

4

Hibernate ya confía en SLF4J. A menos que me equivoque, la versión actual de Spring se basa en el registro de recursos comunes, pero la próxima versión también usará SLF4J. De todos modos, podría consolidate all logging through SLF4J (vea la sección en jcl-over-slf4j.jar). Una vez hecho esto, puede elegir cualquiera de java.util.logging, log4j o logback como su marco de trabajo de registro subyacente.

Cuestiones relacionadas