tutorial mvc mediante libro framework espaƱol ejemplos desarrollo books aplicaciones java logging log4j java.util.logging

mvc - spring java tutorial



Registro de Java vs Log4J (7)

¿Todavía vale la pena agregar la biblioteca de log4j a un proyecto de Java 5 solo para iniciar sesión digamos algunas excepciones a un archivo con algunas configuraciones de rollover agradables. ¿O la instalación de registro de servicios estándar también hará el trabajo?

¿Qué piensas?


Log4j ha existido por mucho tiempo, y funciona muy bien. No tengo ningún estudio científico para respaldarlo, pero en base a lo que he visto en un gran número de clientes, es fácilmente el marco de trabajo de registro que veo utilizado más que cualquier otro. Ha existido por mucho tiempo, y no ha sido reemplazado por Next Big Logging Framework, que dice algo.

Es muy fácil de configurar y fácil de aprender los appenders básicos (salidas). Hay un conjunto de apéndices completos que están disponibles, que incluyen:

  1. ConsoleAppender
  2. DailyRollingFileAppender
  3. ExternallyRolledFileAppender
  4. FileAppender
  5. JDBCAppender
  6. JMSAppender
  7. NTEventLogAppender
  8. RollingFileAppender
  9. SMTPAppender
  10. SocketAppender
  11. SyslogAppender
  12. TelnetAppender
  13. WriterAppender

Más otros No es difícil escribir tu propio appender tampoco. Además, hay una gran flexibilidad en cada uno de los agregados que le permite controlar específicamente lo que se genera en su registro.

Una nota, tuve una serie de problemas con el cargador de clases cuando utilicé el registro de Apache commons además de log4j. Era solo para una aplicación específica, pero me pareció más simple usar log4j solo, en lugar de tener la flexibilidad que se ofrece cuando se utiliza una capa de abstracción como el registro de recursos comunes.

Vea este artículo para más detalles :

¡Buena suerte!


Me gustaría ir con log4j. ¡Las posibilidades con log4j no son obsoletas en absoluto!


Recomiendo que use Simple Logging Facade para Java (SLF4J). Es compatible con diferentes proveedores que incluyen Log4J y se puede utilizar como reemplazo de Apache Commons Logging.


Recomiendo usar Apache Commmons Logging como su interfaz de registro. De esta forma, tiene la flexibilidad de cambiar las implementaciones de registro en cualquier momento que desee sin requerir ningún cambio de código en su extremo.


Yo diría que probablemente estés bien con util.logging para las necesidades que describes.

Para un buen árbol de decisiones, eche un vistazo a Log4j vs java.util.logging

Primera pregunta: ¿Anticipa una necesidad de alguno de los manejadores inteligentes que Log4j tiene que JUL no tiene, como SMTPHandler, NTEventLogHandler, o cualquiera de los muy útiles FileHandlers?

Pregunta dos: ¿Cree que quiere cambiar frecuentemente el formato de su salida de registro? ¿Necesitará una manera fácil y flexible de hacerlo? En otras palabras, ¿necesitas PatternLayout de Log4j?

Pregunta tres: ¿anticipa una necesidad definitiva para la capacidad de cambiar configuraciones de registro complejas en sus aplicaciones, después de que se compilan y se implementan en un entorno de producción? ¿Su configuración suena algo así como, "Los mensajes severos de esta clase se envían por correo electrónico a la persona de soporte, los mensajes graves de un subconjunto de clases se registran en un deamon syslog en nuestro servidor, los mensajes de advertencia de otro subconjunto de clases se registran a un archivo en la unidad de red A, y luego todos los mensajes de todas partes se registran en un archivo en la unidad de red B "? ¿Y te ves retocando cada par de días?

Si puede responder sí a cualquiera de las preguntas anteriores, vaya con Log4j. Si responde un no definitivo a todos ellos, JUL será más que adecuado y ya está convenientemente incluido en el SDK.

Dicho esto, casi todos los proyectos en estos días parecen terminar incluyendo log4j, aunque solo sea porque alguna otra biblioteca lo usa.


java.util.logging ofrece un paquete de registro completo sin el exceso de equipaje que ofrecen los demás.


log4j es un paquete mucho más agradable en general, y no tiene algunos de los inconvenientes que contiene java.util.logging. En segundo lugar, usar log4j directamente es más fácil que usar el registro de commons.