Opzioni di registrazione Maven

1. Panoramica

In questo rapido tutorial, vedremo come configurare le opzioni di registrazione in Maven.

2. Riga di comando

Per impostazione predefinita, Maven registra solo le informazioni, gli avvisi e gli errori . Inoltre, per gli errori, non mostra lo stacktrace completo di quel registro. Per vedere lo stacktrace completo, possiamo usare l' opzione -e o –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) ...

Come mostrato sopra, ora Maven mostra il rapporto completo degli errori. È anche possibile vedere i log del livello di debug tramite l' opzione -X o –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 ...

Quando il debug è attivo, l'output è molto dettagliato. Per combattere questo, possiamo chiedere a Maven di non registrare nulla aspettandosi errori tramite l' opzione -q o –quiet :

$ mvn --quiet clean compile

Inoltre, possiamo reindirizzare il registro di Maven a un file utilizzando l' opzione -l o –log-file :

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

Invece dell'output standard, tutti i log possono essere trovati nel file mvn.log nella directory corrente. In alternativa, è anche possibile utilizzare le funzionalità del sistema operativo per reindirizzare l'output di Maven a un file:

$ mvn clean compile > ./mvn.log

3. Impostazioni SLF4J

Attualmente, Maven utilizza l'API SLF4J per la registrazione combinata con l'implementazione SLF4J Simple . Pertanto, per configurare la registrazione con SLF4J Simple, possiamo modificare le proprietà nel file $ {maven.home} /conf/logging/simplelogger.properties . F

o istanza, se aggiungiamo le seguenti righe in questo file:

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

quindi Maven mostrerà le informazioni di data e ora nel formato sopra.

Proviamo un'altra build:

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

Possiamo anche passare queste proprietà tramite gli argomenti -D dalla riga di comando:

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

Qui stiamo visualizzando il nome del thread oltre ad altre informazioni.

Oltre alle proprietà menzionate, possiamo anche configurare il logger semplice con altre proprietà:

  • org.slf4j.simpleLogger.logFile utilizza un file di registro per la registrazione invece dell'output standard
  • org.slf4j.simpleLogger.defaultLogLevel rappresenta il livello di log predefinito. Può essere trace , debug , info , warn , error o off: il valore predefinito è info
  • org.slf4j.simpleLogger.showLogName mostra il nome del logger SLF4j se è vero
  • org.slf4j.simpleLogger.showShortLogName tronca i nomi lunghi dei logger se è vero

4. Conclusione

In questo breve tutorial, abbiamo visto come configurare diverse opzioni di registrazione e verbosità in Maven.