Veuillez initialiser le log4j système correctement. Lors de l'exécution du service web
Peut-être que cela semble ridicule de demander cela, mais je suis confus. J'ai évoqué La configuration de Log4j propriété mais il ne semble pas aider.
J'ai écrit un service web simple HelloWorld. Et lors de l'exécution de ce que j'obtiens l'erreur à quelque chose comme ceci :
log4j:AVERTIR Aucune appenders pourrait être trouvé pour enregistreur (org.apache.de l'axe.de transport.http.AxisServlet).
log4j:AVERTIR Veuillez initialiser le log4j système correctement.
Je ne suis pas sûr de savoir pourquoi il n'arrive.
Je suis de la génération de la web-service à l'aide d'Eclipse et déployé dans Tomcat 6.0. J'ai vérifier sur Axe Guide du Développeur et selon eux
log4j.configuration=log4j.propriétés
L'utilisation de ce système de propriété pour spécifier le nom d'un fichier de configuration Log4J. Si non spécifié, la valeur par défaut du fichier de configuration log4j.les propriétés. Un log4j.les propriétés de fichier est fourni dans axis.jar.
Je n'ai pas trouver de log4j.propriétés dans le axis.jar
.
Toute aide sur ce?
- double possible de Comment initialiser log4j correctement?
Vous devez vous connecter pour publier un commentaire.
Ces messages sont quelque chose de délicat, assez pour que les gens créé ce pour le rendre plus clair:
https://issues.apache.org/bugzilla/show_bug.cgi?id=25747
Ce qui est difficile, c'est que les mises en garde sont écrits si Log4j ne peut pas trouver son
log4j.properties
(oulog4j.xml
) de fichiers, mais également si le fichier est bien beau, mais son contenu n'est pas complète à partir d'une configuration de point de vue.Le paragraphe suivant est extrait à partir d'ici:
http://svn.apache.org/repos/asf/logging/log4j/tags/v1_2_9/docs/TROUBLESHOOT.html
Sortie de journalisation est écrit d'une cible à l'aide d'un appender. Si aucun appenders sont attachés à une catégorie ni à aucune de ses ancêtres, vous obtiendrez le message suivant lorsque vous essayez d'ouvrir une session:
Log4j n'ont pas de journalisation par défaut de la cible. Il est de la responsabilité de l'utilisateur de s'assurer que toutes les catégories peuvent hériter d'une appender. Ceci peut être facilement réalisé par la fixation d'un appender à la racine de la catégorie.
Vous pouvez trouver des infos sur comment configurer la racine de l'enregistreur (
log4j.rootLogger
) dans le log4j la documentation, fondamentalement, l'ajout de quelque chose d'aussi simple que cela au début du fichier:Cela devrait effacer ces AVERTIR les messages que vous obtenez au démarrage (assurez-vous que vous n'avez pas déjà un appender nommé
stdout
; aussi soyez prudent de quel niveau vous donnez à la racine de l'enregistreur,debug
sera très détaillé et chaque bibliothèque dans votre application va commencer à écrire des trucs à la console).Que sur le
log4j.properties
/log4j.xml
, je vous suggère de placer ce fichier dans/WEB-INF/classes
comme il est important de l'avoir exposés pour les différents réglages (activation/désactivation de journaux, de changer de niveaux de journal, etc). Vous pouvez l'avoir à l'intérieur d'un JAR dans le classpath aussi (comme vous l'avez indiqué dans votre commentaire), mais il sera incluse dans l'archive (j'espère dans le bon endroit à l'intérieur de l'archive) et ne sera pas aussi facile à manipuler comme s'il était en/WEB-INF/classes
.Vous devez créer votre propre
log4j.properties
dans le chemin de classe le dossier.Bien, si vous aviez déjà créé le log4j.propriétés vous ajoutez son chemin dans le chemin de sorte qu'il serait trouvé lors de l'exécution.
Oui, le truc recherche ce fichier dans le classpath.
Puisque vous avez dit que vous regardé dans l'axe et n'a pas à en trouver un, je suis en supposant que vous n'avez pas un log4j.propriétés, voici donc un brut, mais l'exemple complet.
Créer quelque part et les ajouter à votre classpath. Mettez par exemple, dans c:/proj/resources/log4j.properties
Dans votre classpath, vous ajoutez simplement .......;c:/proj/resources
Si le dessous de tresorerie est présent dans votre classe, puis votre log4j.propriétés doivent être en java de la source(src) de dossier , si c'est jar exécutable, il doit être emballé dans un pot pas un autre fichier.
Merci,
Avertissement Pas appenders pourrait être trouvé pour enregistreur signifie que vous êtes en utilisant
log4j
système d'enregistrement, mais vous n'avez pas ajouté de Appenders (comme FileAppender, ConsoleAppender, SocketAppender, SyslogAppender, etc.) dans votre fichier de configuration le fichier de configuration ou est manquant.Il y a trois modes de configuration de log4j: avec un fichier de propriétés (
log4j.properties
), avec un fichier XML et par le biais de code Java (rootLogger.addAppender(new NullAppender());
).Si vous avez des biens de fichier (par exemple lors de l'installation de Solr), vous devez placer ce fichier dans votre classpath répertoire.
classpath
Voici quelques commande des suggestions sur la manière de déterminer votre classpath valeur:
ou de Java:
System.getProperty("java.class.path")
.Tomcat
Si vous utilisez Tomcat, vous pouvez placer votre
log4j.properties
dans:/usr/share/tomcat?/lib/
ou/var/lib/tomcat?/webapps/*/WEB-INF/lib/
dossier.Solr
Pour la référence, Solr
log4j.properties
ressemble: