Propriétés Log4J fichier non trouvé
J'ai un Projet en Java qui a été ajoutée à Java Build Path d'un Projet Web.
Sur le premier projet Java, j'ai ajouté la Log4J fichier JAR pour Java Build Path et depuis ce projet a été ajoutée à Java de construction du Projet de la Projet Web, le fichier JAR est automatiquement ajouté au Projet Web Java Build Path également.
Sur le Projet Web, j'ai un Service Web qui instancie une classe de le Projet Java. Cette classe a un simple Bûcheron, et il fonctionne correctement.
Maintenant, je suis en train de créer un fichier de propriétés nommé log4j.propriétés pour configurer l'Enregistreur de données, Appender et LayoutPattern.
Chaque fois que j'essaie d'appeler une méthode de la instantiaded classe, j'obtiens cette erreur sur la console:
log4j:ERREUR: impossible de lire le fichier de configuration [log4j.propriétés].
Ce que je fais mal?
Voici les propriétés log4j fichier:
log4j.rootLogger=DEBUG, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
Désolé, mais c'était une fausse alerte...
Comme je l'ai dit, le projet où la classe qui instancie l'enregistreur se trouve est ajouté en tant que dépendance o un projet principal sur lequel les services web sont définis.
Comme un résultat que le projet est publié sur un fichier JAR et avec le suposed solution que j'ai mentionné:
PropertyConfigurator.configure(getClass().getProtectionDomain().getCodeSource().getLocation().getPath() + "log4j.les propriétés");
Je reçois un chemin comme:
C:/project_path.jar/log4j.properties.
Évidemment les possédants des fichiers n'est pas encore trouvé...
Sory... Toujours de travailler sur une solution
OriginalL'auteur RedEagle | 2011-05-30
Vous devez vous connecter pour publier un commentaire.
Si l'utilisation de log4j 2.x, vous devez avoir un fichier appelé
log4j2.xml
.log4j.properties
ne va pas le faire.OriginalL'auteur Blauhirn
Placez votre
log4j.properties
fichier dans votreclasses
répertoire si vous utilisez déballé la GUERRE, d'autre endroit dans lesrc
dossier (dossier racine pour votre classes java).Ce serveur d'application/conteneur de servlet utilisez-vous?
OriginalL'auteur Pål Brattberg
La seule façon que j'ai trouvée pour résoudre ce était de mettre le log4j.les propriétés de fichier dans le répertoire src dossier racine.
Puis sur la classe qui instancie l'enregistreur de la ligne suivante:
PropertyConfigurator.configurer("log4j.les propriétés")
... a dû être changé pour:
PropertyConfigurator.configure(getClass().getProtectionDomain().getCodeSource().getLocation().getPath() + "log4j.les propriétés");
Et enfin le fichier a été trouvé.
Merci pour l'aperçu Pål
OriginalL'auteur RedEagle
Ok, parfois, la réponse la plus évidente est celle que vous attendez le moins.
Il s'est avéré que j'avais tout simplement besoin de retirer la PropertyConfigurator.configurer(xxx), et placer la log4j.fichier de propriétés sur le dossier src de la dépendance projet.
Grâce
Pourquoi faire tout cela, est si évidente ?
OriginalL'auteur RedEagle