Maven Logging-opties

1. Overzicht

In deze korte zelfstudie gaan we zien hoe u logboekregistratie-opties in Maven configureert.

2. Commandoregel

Standaard registreert Maven alleen het info, waarschuwing, en fout logboeken. Voor fouten wordt ook niet de volledige stacktrace van dat logboek weergegeven. Om de volledige stacktrace te zien, kunnen we de -e of - fouten keuze:

$ mvn -e schone compilatie // afgekapt kan symbool niet vinden symbool: variabelenaam locatie: klasse Gecompileerd op org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213) op org.apache.maven.lifecycle. internal.MojoExecutor.execute (MojoExecutor.java:154) bij org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) ...

Zoals hierboven getoond, toont Maven nu het volledige foutenrapport. Het is ook mogelijk om logboeken op foutopsporingsniveau te zien via het -X of –Debug keuze:

$ mvn -X schone compilatie // afgekapte OS-naam: "mac os x", versie: "10.15.5", arch: "x86_64", familie: "mac" [DEBUG] Nieuwe klassenwereld maven.api [DEBUG] gemaakt Buitenlandse pakketten importeren in klassenrijk maven.api ...

Als de foutopsporing is ingeschakeld, is de uitvoer erg uitgebreid. Om dit tegen te gaan, kunnen we Maven vragen om niets te registreren, behalve fouten via -q of -rustig keuze:

$ mvn - rustig schoon compileren

Bovendien kunnen we het Maven-logboek omleiden naar een bestand met behulp van de -l of -Log-bestand keuze:

$ mvn --log-bestand ./mvn.log schoon compileren

In plaats van de standaarduitvoer zijn alle logboeken te vinden in het mvn.log bestand in de huidige directory. Als alternatief is het ook mogelijk om OS-functies te gebruiken om de Maven-uitvoer om te leiden naar een bestand:

$ mvn schone compilatie> ./mvn.log

3. SLF4J-instellingen

Momenteel gebruikt Maven de SLF4J API voor logboekregistratie in combinatie met de SLF4J Simple-implementatie. Om logboekregistratie met SLF4J Simple te configureren, kunnen we daarom de eigenschappen in het $ {maven.home} /conf/logging/simplelogger.properties het dossier. F.

of bijvoorbeeld, als we de volgende regels in dit bestand toevoegen:

org.slf4j.simpleLogger.showDateTime = true org.slf4j.simpleLogger.dateTimeFormat = jjjj-MM-dd UU: mm: ss

dan toont Maven de datum-tijd-info in het bovenstaande formaat.

Laten we een andere build proberen:

$ mvn clean compile 2020-07-08 12:08:07 [INFO] Scannen voor projecten ...

Wij kunnen deze eigendommen ook via passeren -D argumenten vanaf de opdrachtregel:

$ mvn compileren -Dorg.slf4j.simpleLogger.showThreadName = true [main] [INFO] Scannen naar projecten ...

Hier geven we de threadnaam weer naast andere informatie.

Naast de genoemde eigenschappen kunnen we de eenvoudige logger ook configureren met andere eigenschappen:

  • org.slf4j.simpleLogger.logFile gebruikt een logbestand voor logboekregistratie in plaats van standaarduitvoer
  • org.slf4j.simpleLogger.defaultLogLevel vertegenwoordigt het standaard logboekniveau. Het kan een van zijn spoor, debuggen, info, waarschuwen, fout, of uit - de standaardwaarde is info
  • org.slf4j.simpleLogger.showLogName toont de naam van de SLF4j-logger als dat het geval is waar
  • org.slf4j.simpleLogger.showShortLogName kapt de lange loggernamen af ​​als het waar

4. Conclusie

In deze korte tutorial hebben we gezien hoe we verschillende logboekregistratie- en breedsprakigheidsopties in Maven kunnen configureren.