log4j.les propriétés ne sont pas prises à partir de jar
J'ai un jar dans le classpath de mon serveur qui contient le log4j.les propriétés de fichier sur la racine de la jarre pour l'enregistrement du code. Lorsque le code dans le pot exécute l'enregistrement pour le code n'est pas de se produire. Lorsque j'ai analysé le problème en utilisant java -Dlog4j.debug option j'ai appris à connaître que le log4j est le chargement de la log4j.fichier de propriétés de axis-ant.jar (c'est sur mon chemin de classe) et de l'utiliser à la place de mon pot de propriété du fichier.
Quand j'ai retiré le axis-ant.jar depuis le classpath mes pots de log4j.fichier de propriétés a été repris immédiatement et la journalisation pour mon code s'est produite.
Quelqu'un peut-il expliquer pourquoi mon log4j.propriétés de fle n'étant pas chargé tout axis-ant.jar est-elle présente?
Étonnamment le même pot avec axis-ant.jar présent dans le classpath est en cours d'exécution avec une bonne journalisation avec succès dans un autre serveur.. à la fois le serveur ont la même version de java 5 installé et même version de log4j pot
OriginalL'auteur harsh | 2011-03-23
Vous devez vous connecter pour publier un commentaire.
Vous devriez jeter un oeil à la log4j manuel. La section "Initialisation par Défaut de la Procédure de" décrit comment log4j vais essayer de trouver le fichier d'initialisation et explique les possibilités pour correspondre à une configuration particulière (par exemple, par le réglage du système de la propriété
log4j.configuration
).Si vous ne voulez pas faire de configuration particulière que vous avez à vous assurer que votre fichier de configuration sera le premier trouvé sur le chemin de la classe.
la solution semble être de garder un fichier unique pour l'ensemble de l'exploitation forestière. Ce doit être conservé dans un endroit acessible à log4j.. Merci
Par la mise en
-Dlog4j.configuration=log4j.properties
dans mon démarrage de tomcat, mon application web démarré à l'aide de$CATALINA/lib/log4j.properties
au lieu de l'embedded jar fichiers de configuration log4j.OriginalL'auteur FrVaBe
Le fichier de propriétés est ramassé dans le pot en fonction de l'ordre dans lequel le pot est trouvé dans le classpath de votre application serveur. Maintenant, il n'y a aucun moyen de dire de façon concluante le pot à partir de laquelle le fichier de propriétés est d'être chargé.
Pour contourner ce problème, la plupart des projets inclure votre log4j.les propriétés de fichier dans le serveur classpath lui-même. De cette façon, ce fichier est la première des propriétés de fichier à charger et c'est la que votre code d'enregistrement obtient.
Oui. Vous n'avez pas vraiment besoin de plusieurs log4j.les propriétés des fichiers. Vous pouvez simplement ajouter que les règles que vous souhaitez en un seul.
OriginalL'auteur Pushkar
Je ne suis plus tout à fait sûr, mais il pourrait être un problème de commande. Selon log4j.propriétés est chargé en premier/dernier allait gagner (je dois vérifier).
Eh bien, comment doit-on gérer contredire propriétés? Le plus simple serait de ne pas permettre que simplement en n'utilisant qu'un seul fichier (le premier ou le dernier n'est pas pertinent dans ce cas).
ouais en gardant un seul fichier semble être la solution .. merci 🙂
OriginalL'auteur Thomas
Peut-être parce que axis-ant.jar vient avant dans le classpath de votre propre pot. Je suppose de mettre votre pot avant dans le classpath alors axis-ant.jar devrait aider
oui..les bocaux dans le poste(extension dir) dossier sera pris avant les pots dans le chemin de classe, parce ext pots sont chargés par l'extension du chargeur de classe qui est la société mère pour l'application du chargeur de classe
OriginalL'auteur Suraj Chandran