Comment puis-je modifier l'emplacement par défaut de log4j2.xml en Java Spring Boot?
Log4j2 fonctionne parfaitement avec le Printemps de Démarrage par le biais de la log4j2.xml
fichier de configuration à la racine du classpath, exactement comme les états de documentation.
Lorsque vous essayez de déplacer ce fichier vers un autre emplacement si je ne suis pas en mesure de passer le nouvel emplacement de Printemps au démarrage. De la documentation:
Les différents systèmes d'enregistrement peut être activé par y compris le
les bibliothèques appropriées sur le chemin de la classe, et plus personnalisé par l'
offrant une configuration adaptée de fichier dans la racine du classpath,
ou dans un emplacement spécifié par le Printemps de l'Environnement de la propriété
logging.config
.
J'ai essayé la configuration du nouvel emplacement avec une propriété système Java
java -jar -Dlogging.config="classpath:/config/log4j2.xml" target/app.jar
ou à l'aide d'un application.properties
contenant les biens
logging.config=classpath:/config/log4j2.xml
Mais je suis régulièrement accueilli par le message d'erreur suivant.
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
/config
est dans le classpath? si vous utilisez maven de projet basée sur, mettre le fichier xml sous src/main/resources
Le
config
dossier (forfait) est dans le classpath, et il contient déjà application.yml
, c'est bien ramassé et utilisé avec succès dans l'application.Pourriez-vous s'il vous plaît mettre le fichier xml dans
src/main/resources
et essayez de sorte que nous pouvons cerner le problème?Si j'ai mis le fichier XML dans son bon emplacement, le chemin de la classe racine (
src/main/java
), il fonctionne sans problèmes. Je ne suis pas ce que l'on doit vérifier en mettant le XML dans le src/main/resources
dossier. Ce que je veux être en mesure de faire est de mettre la log4j2.xml fichier où je veux.Depuis il fonctionne très bien lorsque vous le mettez dans
src/main/java
, il n'y a pas de problème avec la configuration. Si vous voulez qu'il fonctionne indépendamment de la position de la log4j2.xml
, vous devez vous assurer que le dossier est dans le classpath. Si vous utilisez eclipse, right click on the project -> Build Path -> Configure Build Path
pour définir le classpath.
OriginalL'auteur micpalmia | 2015-02-05
Vous devez vous connecter pour publier un commentaire.
Comme spécifié dans le Printemps de la documentation de référence, le
logging.config
propriété ne peut pas être mis entre les propriétés de l'application, car ils sont lus après la connexion a déjà été initialisé.La solution est de fournir le chemin d'accès à l'extérieur de la configuration de la journalisation de cette façon:
OriginalL'auteur micpalmia
La réponse de micpalmia est absolument correcte.
J'avais besoin de mettre de la configuration à l'extérieur le chemin de la classe, je ne voulais pas passer le fichier de configuration en tant que paramètre. Alors j'ai mis un très simple de configuration de l'enregistrement dans le classpath de ressources et le ressort de démarrage de l'application reconfigurer la journalisation sur démarrer, comme suit:
Cette approche a un inconvénient majeur: l'ensemble de L'application processus de démarrage ne sera pas enregistré comme en externe configuré. Mais une fois le code personnalisé est d'exécuter l'enregistreur fonctionne comme prévu. Si vous ne pouvez pas, je trouve cela d'être un compromis, je peux vivre avec.
OriginalL'auteur konqi
J'ai le même problème dans mon projet, en plus de log4j2.xml j'ai aussi besoin d'autres fichiers de configuration dans le chemin de classe.
Voici mes 2 solutions qui fonctionne:
Soluation 1 : Début de printemps application de démarrage avec org.springframework.de démarrage.loader.JarLauncher
Solution 2: Écrire un". /config' le chemin de classe de l'entrée dans le MANIFESTE.MF dans le pot
OriginalL'auteur Harry.Chen
J'ai de solution de travail de définir un chemin d'accès ou modifier un chemin d'accès au fichier pour le fichier de journalisation. Si vous avez configuré log4j2.xml fichier, l'ouvrir et de voir où vous devez faire un changement de ligne à la config chemin du fichier journal.
OriginalL'auteur SachinVsSachin
En cas de fichier de propriétés:
À la ligne de commande fonctionne au Printemps de Démarrage 2. N'oubliez pas d'ajouter fichier: avant le chemin d'accès.
OriginalL'auteur Atul