Options de journalisation Maven

1. Vue d'ensemble

Dans ce tutoriel rapide, nous allons voir comment configurer les options de journalisation dans Maven.

2. Ligne de commande

Par défaut, Maven enregistre uniquement les journaux d' informations, d'avertissement et d' erreurs . En outre, pour les erreurs, il n'affiche pas la trace de pile complète de ce journal. Afin de voir le stacktrace complet, nous pouvons utiliser l' option -e ou –errors :

$ mvn -e clean compile // truncated cannot find symbol symbol: variable name location: class Compiled at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) ...

Comme indiqué ci-dessus, Maven affiche maintenant le rapport d'erreur complet. Il est également possible de voir les journaux de niveau de débogage via l' option -X ou –debug :

$ mvn -X clean compile // truncated OS name: "mac os x", version: "10.15.5", arch: "x86_64", family: "mac" [DEBUG] Created new class realm maven.api [DEBUG] Importing foreign packages into class realm maven.api ...

Lorsque le débogage est activé, la sortie est très détaillée. Pour lutter contre cela, nous pouvons demander à Maven de ne pas enregistrer quoi que ce soit à attendre des erreurs via l' option -q ou –quiet :

$ mvn --quiet clean compile

De plus, nous pouvons rediriger le journal Maven vers un fichier en utilisant l' option -l ou –log-file :

$ mvn --log-file ./mvn.log clean compile

Au lieu de la sortie standard, tous les journaux peuvent être trouvés dans le fichier mvn.log dans le répertoire courant. Comme alternative, il est également possible d'utiliser les fonctionnalités du système d'exploitation pour rediriger la sortie Maven vers un fichier:

$ mvn clean compile > ./mvn.log

3. Paramètres SLF4J

Actuellement, Maven utilise l'API SLF4J pour la journalisation combinée à l'implémentation SLF4J Simple . Par conséquent, pour configurer la journalisation avec SLF4J Simple, nous pouvons éditer les propriétés dans le fichier $ {maven.home} /conf/logging/simplelogger.properties . F

ou exemple, si nous ajoutons les lignes suivantes dans ce fichier:

org.slf4j.simpleLogger.showDateTime=true org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss

puis Maven affichera les informations date-heure dans le format ci-dessus.

Essayons une autre version:

$ mvn clean compile 2020-07-08 12:08:07 [INFO] Scanning for projects...

Nous pouvons également transmettre ces propriétés via des arguments -D depuis la ligne de commande:

$ mvn compile -Dorg.slf4j.simpleLogger.showThreadName=true [main] [INFO] Scanning for projects...

Ici, nous affichons le nom du thread en plus d'autres informations.

En plus des propriétés mentionnées, nous pouvons également configurer l'enregistreur simple avec d'autres propriétés:

  • org.slf4j.simpleLogger.logFile utilise un fichier journal pour la journalisation au lieu de la sortie standard
  • org.slf4j.simpleLogger.defaultLogLevel représente le niveau de journalisation par défaut. Il peut s'agir de trace , de débogage , d' informations , d' avertissement , d' erreur ou de désactivation - la valeur par défaut est info
  • org.slf4j.simpleLogger.showLogName affiche le nom de l'enregistreur SLF4j s'il est vrai
  • org.slf4j.simpleLogger.showShortLogName tronque les noms longs des enregistreurs si c'est vrai

4. Conclusion

Dans ce court didacticiel, nous avons vu comment configurer différentes options de journalisation et de verbosité dans Maven.