log4j.propriétés vs log4j.xml
J'ai été invité à se déplacer à partir des propriétés de style de configuration de style xml. Le processus lui-même est simple et il n'est pas de me causer des ennuis, j'étais simplement curieux de savoir pourquoi je me suis demandé cela, et j'ai cherché la raison. J'ai trouvé ce joli post Pourquoi choisir le XML sur les propriétés des fichiers de configuration Log4J? (plus de 3 ans, mais encore le plus instructif que j'ai pu trouver), qui pointait pointant vers cette même plus tutoriel. Ils état
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.
Je l'ai vérifié et, contrairement à la déclaration, que Log4j regarde en premier pour le fichier de propriétés, puis dans un deuxième temps pour xml. En fait, si je garde les deux dans le même dossier, la sortie est formaté selon le fichier de propriétés. Alors, suis-je mal compris l'énoncé? Est-ce simplement une erreur? La déclaration a été faite pour log4j 1.2.14 alors que je suis sur log4j 1.2.17, est-il possible de la log4j équipe a changé la priorité? Je ne pouvais pas trouver toute la documentation connexe, mais ce sera une étrange inversion de tendance depuis le xml semblait être la meilleure façon de configurer log4j
Vous devez vous connecter pour publier un commentaire.
Ont un look à la JavaDoc. La documentation de la PropertyConfiguratorClass (log4j.les propriétés) souligne que
De sorte que le DOMConfigurator (log4j.xml) offre des options avancées.
Côté que vous pouvez avoir (au moins simple) contrôle de validité de log4j.xml les fichiers à l'aide du log4j.dtd.
Si le youd ne pas utiliser les fonctionnalités avancées, il est inutile de modifier les propriétés de fichiers xml.
Vraiment ce que vous devez penser est de changer de log4j pour log4j 2 beta ou même
slf4j. Le développement de log4j est arrêté et le fondateur (@Ceki) inventé slf4j.
Comme par FrVaBe réponse, le PropertyConfigurator classe ne gère pas les fonctionnalités avancées que XML peut prendre en charge.
Il est intéressant de noter l'un des plus utiles options avancées (disponible uniquement log4j.xml) est la possibilité de filtrer sur un niveau de journal ou de la gamme de niveaux de journal à l'aide de LevelMatchFilter et DenyAllFilter
Un bon exemple peut être vu ici.