what usar servidor qué porque expresiones aws java xml logging log4j

java - usar - ¿Por qué elegir XML sobre archivos de propiedades para la configuración de Log4J?



servidor lambda (4)

¿Hay alguna razón para usar XML sobre archivos de propiedades para la configuración de Log4J?


Bueno, una cosa que solo puedes hacer en una configuración xml es configurar un registrador para usar el almacenamiento en búfer (usando el org.apache.log4j.AsyncAppender).

Sin embargo, si necesita más funcionalidad, también puede consultar logback, que contiene una serie de otras mejoras sobre log4j.


Hay una discusión interesante sobre los méritos de ambos en este blog . La siguiente sección es una cita de ese blog:

Las propiedades se pueden definir mediante un archivo de propiedades o un archivo XML. Log4j busca un archivo llamado log4j.xml y luego un archivo llamado log4j.properties. Ambos deben colocarse en la carpeta src .

El archivo de propiedades es menos detallado que un archivo XML. El XML requiere que log4j.dtd también se coloque en la carpeta de origen. El XML requiere un dom4j.jar que podría no estar incluido en las versiones anteriores de Java.

El archivo de propiedades no es compatible con algunas opciones de configuración avanzadas, como filtros, manejadores de errores personalizados y un tipo especial de anexos, es decir, AsyncAppender. ErrorHandlers define cómo se manejan los errores en log4j, por ejemplo, los appendidos mal configurados. Los filtros son más interesantes. De los filtros disponibles, creo que el filtro de rango de nivel realmente falta para los archivos de propiedades.

Este filtro permite definir que un [n] appender debería recibir mensajes de registro de Level INFO a WARN. Esto permite dividir los mensajes de registro en diferentes archivos de registro. Uno para mensajes DEBUGGING, otro para advertencias, ...

El appender de propiedades solo admite un nivel mínimo. Si lo configura, haga INFO, también recibirá mensajes WARN, ERROR y FATAL.

Para abordar los comentarios en mi respuesta original: las cursivas son mi énfasis. A los efectos del tutorial, el autor ha elegido pasar por alto u omitir involuntariamente que las propiedades o xml solo necesiten estar en el classpath en lugar de tener que estar en la carpeta src. Una forma sencilla de agregarlos al classpath es agregarlos a la carpeta src, por lo que para el tutorial que obviamente se consideró suficiente.

Nada de esto es directamente relevante para la pregunta o la intención de la respuesta, que es discutir los méritos o no de usar archivos xml para configurar log4j. Considero que el resto de la cita es relevante y útil para aquellos que buscan tomar una decisión informada.


Perf4j ( http://perf4j.codehaus.org ) es un sistema de monitoreo de rendimiento muy agradable, que se configura junto con log4j y funciona en conjunto con él y requiere archivos log4j.xml.
Entonces, si planea usar perf4j (lo recomiendo), se requiere un formato xml.


log4j se mueve gradualmente a XML, por lo que propiedades es el formato heredado.

Algunas características nuevas solo se pueden configurar en XML. Me vi obligado a cambiar a XMl porque necesito usar TimeBasedRollingPolicy.

Sin embargo, XML es muy detallado. Sigo usando propiedades siempre que puedo.