web-dev-qa-db-fra.com

Lequel est prioritaire: logback.xml ou logback-test.xml?

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

12

De les docs :

Commençons par discuter des étapes d'initialisation que la déconnexion suit pour essayer de se configurer:

  1. Logback essaie de trouver un fichier appelé logback-test.xml dans le chemin de classe.

  2. Si aucun fichier de ce type n'est trouvé, logback essaie de trouver un fichier appelé logback.groovy dans le chemin de classe.

  3. Si aucun fichier de ce type n'est trouvé, il recherche le fichier logback.xml dans le chemin de classe.

  4. 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.

  5. 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.

16
glytching