41 votes

Pourquoi avoir choisi XML plutôt que les fichiers de propriétés pour la configuration de Log4J?

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

40voto

Rich Seller Points 46052

Il y a une discussion intéressante sur le fond à la fois 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 cherche un fichier nommé log4j.xml et puis, un fichier nommé log4j.les propriétés. Les deux doivent être placés dans le dossier src.

Le fichier de propriétés est moins bavard que d'un fichier XML. Le XML exige le log4j.dtd pour être placé dans le dossier source ainsi. Le XML nécessite un dom4j.jar qui pourrait ne pas être inclus dans les anciennes versions de Java.

Les propriétés de fichier ne prend pas en charge les options de configuration avancées, tels que les Filtres, personnalisé ErrorHandlers et un type spécial de appenders, c'est à dire AsyncAppender. ErrorHandlers définit la manière dont les erreurs log4j lui-même sont traitées, par exemple mal configuré appenders. Les filtres sont plus intéressants. À partir de filtres disponibles, je pense que le niveau de gamme de filtre qui manque vraiment pour les fichiers de propriétés.

Ce filtre permet de définir qu'un[n] appender devraient recevoir des messages de Niveau INFO pour AVERTIR. Cela permet de scinder les messages du journal à travers les différents fichiers de log. Un pour les messages de DÉBOGAGE, une autre pour les avertissements, ...

La propriété appender prend uniquement en charge un niveau minimum. Si vous définissez il ne INFO, vous recevrez WARN, ERROR et FATAL messages ainsi.


Pour répondre aux commentaires sur mon premier réponse: Les italiques sont de mon accent. Pour les besoins de ce tutoriel, l'auteur a choisi de passer sous silence, ou involontairement omis que les propriétés ou xml seulement besoin d'être sur le chemin de la classe plutôt que de devoir être dans le dossier src. Un moyen simple d'ajouter au classpath est à ajouter au dossier src, pour les besoins du tutoriel qui a évidemment été jugée suffisante.

Rien de tout cela est directement pertinente à la question posée ou à l'intention de la réponse, qui est de discuter du bien-fondé ou non de l'aide de fichiers xml pour configurer log4j. Je considère que le reste de la citation est pertinente et utile pour ceux qui cherchent à faire un choix éclairé.

9voto

ZZ Coder Points 36990

log4j se déplace progressivement vers XML afin que propriétés soit le format hérité.

Certaines nouvelles fonctionnalités ne peuvent être configurées qu'en XML. J'ai été obligé de passer à XMl parce que je dois utiliser TimeBasedRollingPolicy.

Cependant, XML est tellement prolixe. J'utilise toujours les propriétés chaque fois que je peux.

3voto

Ran Points 3202

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

3voto

Steve B. Points 23227

Eh bien, une chose que vous ne pouvez faire que dans une configuration XML est de configurer un enregistreur pour qu'il utilise la mise en mémoire tampon (à l'aide de org.apache.log4j.AsyncAppender).

Toutefois, si vous avez besoin de plus de fonctionnalités, vous pouvez également consulter Logback, qui contient un certain nombre d’autres améliorations par rapport à log4j.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X