La configuration de log4j2 et log4j à l'aide d'un seul log4j2 fichier xml
J'ai migré ma demande de log4j 2, et j'ai configuré via log4j2.xml
Toutefois, certains des bibliothèques, je suis en utilisant dépendent de log4j 1. Si je lance l'application à l'aide de:
-Dlog4j.configurationFile=path/to/log4j2.xml
log4j 1 se plaint de ne pas trouver un fichier de configuration. Je suis à l'aide de la log4j 1.x pont fournis par log4j 2, log4j-1.2-api-2.0-rc1.jar. Est-il possible de configurer à la fois à l'aide d'un seul log4j2.xml?
Une alternative que j'ai essayé est de la configuration de log4j et log4j2 ensemble:
-Dlog4j.configurationFile=path/to/log4j2.xml -Dlog4j.configuration=path/to/log4j.xml
Ma préoccupation est la fragmentation de ma configuration de l'enregistrement des fichiers et de sortie. Je suis également préoccupé par les conflits possibles entre les log4j.xml et log4j2.xml. par exemple, le fichier de log d'erreur.le journal est configuré pour utiliser un FileAppender dans log4j 1 et un RollingFileAppender dans log4j 2.
Des conseils?
[remarque]
C'est l'erreur que je vois:
log4j:WARN No appenders could be found for logger (org.apache.activemq.util.ThreadPoolUtils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
La version de log4j 2 que j'utilise est log4j 2.0 rc1.
[répondre]
Semble activemq-5.8.0.jar a été livré avec log4j 1. La solution était tout simplement de charger le log4j 1.x pont avant activemq.
OriginalL'auteur Justin Wong | 2014-03-11
Vous devez vous connecter pour publier un commentaire.
Je vous conseille d'utiliser le log4j-1.2 adaptateur qui est inclus dans le log4j2 de distribution. De cette manière, toutes les bibliothèques codées à l'log4j-1.2 API de travailler avec log4j2 sans aucune modification de code.
Votre classpath devrait inclure:
Votre classpath doit pas comprennent:
Voir aussi http://logging.apache.org/log4j/2.x/faq.html#which_jars
Si il n'y a pas de log4j-1.2.x.jar dans le classpath, alors comment pouvez-log4j-1.2 encore se plaindre (les classes faisant le plaignant ne devrait pas être sur le chemin de classe)?
Je crois que c'est de se plaindre en raison de la log4j 1.x pont.
En fait c'est vraiment de ma faute pour utiliser le mauvais fichier jar, je viens de découvrir que trop. Merci beaucoup pour les conseils bien =)
J'ai été en utilisant activemq, quand j'ai vraiment devrait avoir été à l'aide des différentes bibliothèques requis, par exemple, activemq-client, activemq-core, activemq-courtier, etc
OriginalL'auteur Remko Popma
Dans un projet maven à l'aide de log4j2, il est possible d'exclure log4j à partir de modules qui l'utilisent, dans le pom, afin de permettre log4j2 à prendre le relais:
Plus d'informations à ce sujet dans le log4j FAQ
Oui, vous ajoutez le log4j2 de dépendance, mais dans la dépendance qui devrait utiliser log4j (et pas log4j2), vous ajoutez l'exclusion.
ainsi, ces exclusions doivent apparaître pour log4j-1.2-api-2.6.1.jar artefact? Ou avec qui est-il?
J'ai effectivement plate-forme qui, par défaut, utilise uniquement log4j (aucun natif log4j2 de soutien) et j'essaie de le configurer pour log4j de routage à log4j2 et essayez de configurer correctement le maven pom.xml. Ayant accepté de répondre œuvres, la question qui reste est de savoir où placer les exclusions mentionnées par vous. Merci beaucoup.
J'ai édité ma réponse pour plus d'informations
OriginalL'auteur OOP