log4j.xml - AVERTIR Aucune appenders pourrait être trouvé pour enregistreur
Je ltried à utiliser log4j
loger pour mon projet simple.
Mais lorsque je lance le projet que j'ai intercepté strainge avertissement de log4j à la console:
log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Je ne pouvais pas comprendre pourquoi exactement cela.
J'ai ajouté et téléchargé log4j avec Maven tout devrait fonctionner.
J'ai précisé apeender, à mon avis, ok, il devrait fonctionner correctement.
Mais comme vous pouvez le voir il n'est pas.
Voici le contenu de mon log4j.xml
:
<!-- Appenders -->
<!-- Loggin into console -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="/logs/log.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p (%F:%L:%M) %c{1} - %m%n" />
</layout>
</appender>
<!-- Root logger -->
<root>
<priority value="info" />
<appender-ref ref="file" />
<appender-ref ref="console" />
</root>
<!-- Application Loggers -->
<logger name="com.softserve.edu">
<level value="info" />
</logger>
J'ai raté standart en-tête et pied de page ( balises).
Un glissantes place est que ce fichier dans logs
dossier n'existe pas (je suppose que log4j permettra de créer par lui-même).
Voici mon projet struckture:
Mise à JOUR:
J'ai créé un nouveau dossier sous src/test/resources
et déplacé log4j.xml
.
Maintenant, ils sont tous ok avec cet AVERTISSEMENT, mais log
fichier n'est pas créé.
quel est le problème avec cette ligne <param name="file" value="/logs/log.log" />
?
- Comment résoudre ce problème?
OriginalL'auteur nazar_art | 2013-11-22
Vous devez vous connecter pour publier un commentaire.
Votre log4j.xml le fichier doit aller dans le répertoire src/main/resources. Log4J s'attend à la trouver à la racine du classpath.
Le répertoire des ressources est la place pour mettre tout ce qui n'est pas le code Java, mais que vous voulez aller dans le classpath. Si c'est quelque chose que seuls les tests à utiliser, le mettre dans src/test/resources, sinon utilisez le répertoire src/main/resources.
OriginalL'auteur Nathan Hughes
J'ai du mal à répondre à ça moi-même, donc: à partir de la l0g4j site, c'est une FAQ, qui l'erreur en fait des points.
http://logging.apache.org/log4j/1.2/faq.html#noconfig
Comme vous le savez (mais pour le profane qui bute sur cette erreur fréquente): Un Appender est où la sortie passe. Vous pouvez avoir de la console Appenders, fichier Appenders, et d'autres, qui sont tous énoncées dans les orientations.
Quand log4j vous dit qu'il n'a pas de Appenders enregistrée, elle vous indique la sortie a nulle part où aller. C'est pourquoi, sans doute, votre demande est silencieux, sauf pour l'erreur.
Étant donné que vous avez, en effet, précisé Appenders l'erreur peut vraiment être un seul des quelques choses.
Si l'Appender a été en quelque sorte mal formé, vous vous attendez à voir une Analyse exception, donc ce n'est probablement pas un problème.
SI, toutefois, le journal du fichier de configuration n'a pas pu être trouvée.....vous verriez ce problème! Plus que probablement, votre demande ne voit tout simplement pas le fichier de configuration et il est tentant de recourir à des valeurs par défaut.
Comment vous pourriez obtenir dans cet état comprend:
Lorsque vous placez le fichier ./src/main/resources Maven en fait bundles l'logger.xml DANS le bocal. Ce qui la met sur le chemin de la classe, qui est l'endroit où l'enregistreur de recherche par défaut (évidemment l'est dans le classpath).
Cependant, de nombreux utilisateurs ne veulent pas voir la configuration de la journalisation emballés à l'intérieur de de leur "binaire" jar. Quel est le point de la configuration de la log-level si vous devez recompiler, ou essentiellement faire désordre dans l'édition d'une configuration à l'intérieur d'un fichier zip? Donc, pour beaucoup de Nathan Hughes réponse est un non-réponse, qui est pourquoi il vaut la peine de parler de l'autre des scénarios.
Si vous avez emballé votre fichier de configuration AVEC le pot, puis le logiciel ne cherche pas au bon endroit. Si vous avez fait tout le travail pour déplacer le fichier vous-même, alors peut-être que vous avez caché la log4j.xml fichier à partir de vous-même.
Cependant, le plus probable, vous présente le fichier en utilisant le maven convention ./src/main/config/log4j.xml. Si c'est le cas, alors le problème est que votre logiciel n'est pas configuré pour le chercher.
Une méthode consiste à spécifier sur la ligne de commande lors de l'appel de votre application
Si vous êtes un fan de coder en dur (je ne suis pas) quelque part dans votre code, devrait être un appel
Pour une .fichier de propriétés:
Pour une .fichier xml:
OriginalL'auteur InfernalRapture