Log4j
# Log4j

Log4j es una biblioteca de código abierto desarrollada en Java por la Apache Software Foundation que permite a los desarrolladores de software escribir mensajes de registro, cuyo propósito es dejar constancia de una determinada transacción en tiempo de ejecución. Log4j permite filtrar los mensajes en función de su importancia. La configuración de salida y granularidad de los mensajes es realizada en tiempo de ejecución mediante el uso de archivos de configuración externos. Log4J ha sido implementado en otros lenguajes como C, C++, C#, Perl, Python, Ruby y Eiffel.

## Historia

Log4j es un proyecto de la Apache Software Foundation que fue escrito por Ceki Gülcü. Log4j es uno de los varios Java Logging Frameworks existentes.

Gülcü ha comenzado los proyectos SLF4J y Logback, con la intención de ofrecer un sucesor a log4j.

## Conceptos

### Niveles de prioridad de los mensajes

Por defecto Log4J tiene seis niveles de prioridad para los mensajes: trace, debug, info, warn, error y fatal. Además existen otros dos niveles extras, all y off.

Niveles de prioridad (de menor a mayor):

* OFF: este es el nivel de mínimo detalle, deshabilita todos los logs.
* FATAL: se utiliza para mensajes críticos del sistema, generalmente después de guardar el mensaje el programa abortará.
* ERROR: se utiliza en mensajes de error de la aplicación que se desea guardar, estos eventos afectan al programa pero lo dejan seguir funcionando, como por ejemplo que algún parámetro de configuración no es correcto y se carga el parámetro por defecto.
* WARN: se utiliza para mensajes de alerta sobre eventos que se desea mantener constancia, pero que no afectan al correcto funcionamiento del programa.
* INFO: se utiliza para mensajes similares al modo "verbose" en otras aplicaciones.
* DEBUG: se utiliza para escribir mensajes de depuración. Este nivel no debe estar activado cuando la aplicación se encuentre en producción.
* TRACE: se utiliza para mostrar mensajes con un mayor nivel de detalle que debug.
* ALL: este es el nivel de máximo detalle, habilita todos los logs (en general equivale a TRACE).
