web-dev-qa-db-fra.com

Pourquoi a choisi XML sur des fichiers de propriétés pour la configuration log4j?

Y a-t-il des raisons d'utiliser XML sur des fichiers de propriétés pour la configuration log4j?

41
otto.poellath

Il y a une discussion intéressante sur le mérite des deux dans ce blog . La section ci-dessous est une citation de ce blog:

Les propriétés peuvent être définies par un fichier de propriétés ou par un fichier XML. Log4j recherche un fichier nommé log4j.xml, puis pour un fichier nommé log4j.properties. Les deux doivent être placés dans le dossier SRC .

Le fichier de propriété est moins verbeux qu'un fichier XML. Le XML nécessite que le log4j.dtd soit placé également dans le dossier source. Le XML nécessite un DOM4J.JAR qui pourrait ne pas être inclus dans les anciennes Java versions.

Le fichier de propriétés ne prend pas en charge certaines options de configuration avancées telles que des filtres, des erreurs personnalisées et un type spécial d'annexes, c'est-à-dire ASYNCAppender. ErrorhandLers définit la manière dont les erreurs de Log4J sont manipulées, par exemple des annexes mal configurées. Les filtres sont plus intéressants. À partir des filtres disponibles, je pense que le filtre de niveau de niveau est vraiment manquant pour les fichiers de propriété.

Ce filtre permet de définir que A. N] Appendend devrait recevoir des messages de journal des informations de niveau à avertir. Cela permet de scinder les messages du journal sur différents logfiles. Un pour les messages de débogage, un autre pour les avertissements, ...

L'Appender Property ne prend en charge qu'un niveau minimum. Si vous le définissez, vous recevrez également des messages avertis, des erreurs et des messages fatals.


Pour répondre aux commentaires sur ma réponse originale: les italiques sont mon emphase. Aux fins du tutoriel, l'auteur a choisi de briller ou d'omettre involontairement que les propriétés ou XML ne doivent être que sur la classe de classe plutôt que de devoir être dans le dossier SRC. Un moyen simple de les ajouter à la classe de classe est de les ajouter au dossier SRC, afin que le tutoriel soit manifestement jugé suffisant.

Aucun de cela n'est directement pertinent pour la question posée ou l'intention de la réponse, qui doit discuter du fond ou autrement d'utiliser des fichiers XML pour configurer log4j. Je considère que le reste de la citation est pertinent et utile à ceux qui cherchent à faire un choix éclairé.

40
Rich Seller

PERF4J ( http://perf4j.codehaus.org ) est un très bon système de surveillance des performances, configuré à côté de Log4J et fonctionne en conjonction et nécessite des fichiers log4j.xml.
Donc, si vous envisagez d'utiliser PERF4J (je recommanderais), un format XML est requis.

3
Ran

Eh bien, une chose que vous ne pouvez faire que dans une configuration XML est de configurer un enregistreur pour utiliser la mémoire tampon (à l'aide de l'ORG.APACHE.LOG4J.ASYNCAppender).

Si vous avez besoin de plus de fonctionnalités, vous souhaiterez peut-être également examiner le logback, qui contient un certain nombre d'autres améliorations sur Log4J.

3
Steve B.