Je suis très nouveau pour me déconnecter. Si mon projet Spring Boot contient les deux fichiers -
logback.xml
: présent sous * src/main/resources /logback-test.xml
: présent sous * src/test/resources /Lequel va se charger? logback.xml
ou logback-test.xml
?
Je lisais la documentation de la déconnexion et il dit, d'abord il cherche logback-test.xml
puis logback.xml
.
Alors, c'est comme logback-test.xml
le fichier aura priorité sur logback.xml
si nous déployons l'application?
Merci!
Saurabh
De les docs :
Commençons par discuter des étapes d'initialisation que la déconnexion suit pour essayer de se configurer:
Logback essaie de trouver un fichier appelé logback-test.xml dans le chemin de classe.
Si aucun fichier de ce type n'est trouvé, logback essaie de trouver un fichier appelé logback.groovy dans le chemin de classe.
Si aucun fichier de ce type n'est trouvé, il recherche le fichier logback.xml dans le chemin de classe.
Si aucun fichier de ce type n'est trouvé, la fonction de chargement du fournisseur de services (introduite dans JDK 1.6) est utilisée pour résoudre l'implémentation de l'interface com.qos.logback.classic.spi.Configurator en recherchant le fichier META-INF\services\ch. qos.logback.classic.spi.Configurator dans le chemin de classe. Son contenu doit spécifier le nom de classe complet de l'implémentation du configurateur souhaitée.
Si aucun des éléments ci-dessus ne réussit, la déconnexion se configure automatiquement à l'aide de BasicConfigurator, ce qui entraînera la sortie de la journalisation vers la console.
La dernière étape est conçue comme un effort ultime pour fournir une fonctionnalité de journalisation par défaut (mais très basique) en l'absence d'un fichier de configuration.
Donc, la réponse à cette question ...
Lequel est prioritaire: logback.xml ou logback-test.xml?
... est logback-test.xml .
Cependant, cette question ...
Alors, est-ce que le fichier logback-test.xml aura priorité sur logback.xml si nous déployons l'application?
... complique légèrement les choses. Si vous déployez les deux logback-test.xml
et logback.xml
puis logback-test.xml
sera prioritaire mais il n'est pas courant de déployer logback-test.xml
. En effet, compte tenu des emplacements fournis dans votre question logback-test.xml
ne sera pas déployé par défaut car il se trouve dans l'arborescence de test (src/test/resources
).
Encore une fois, de les docs :
Si vous utilisez Maven et si vous placez le logback-test.xml dans le dossier src/test/resources, Maven s'assurera qu'il ne sera pas inclus dans l'artefact produit. Ainsi, vous pouvez utiliser un fichier de configuration différent, à savoir logback-test.xml pendant les tests, et un autre fichier, à savoir logback.xml, en production.
Donc, en résumé; par défaut logback-test.xml
ne sera pas déployé donc logback.xml
sera utilisé dans votre système déployé mais logback-test.xml
aura priorité sur logback.xml
lors de l'exécution de vos cas de test.