Spring Boot: Hoe kan ik het logging niveau instellen met application.properties?

Dit is een zeer eenvoudige vraag, maar ik kan geen informatie vinden.
(Misschien schiet mijn kennis over Java frameworks ernstig tekort)

Hoe kan ik het logging niveau instellen met application.properties?
En logging bestand locatie, etc?

Oplossing

Update: Vanaf Spring Boot v1.2.0.RELEASE zijn de instellingen in application.properties of application.yml wel van toepassing. Zie de Log Levels sectie van de referentiegids.

logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR

Voor eerdere versies van Spring Boot kan dat niet. Daar moet je gewoon de normale configuratie voor je logging framework (log4j, logback) voor gebruiken. Voeg het juiste config bestand (log4j.xml of logback.xml) toe aan de src/main/resources directory en configureer naar wens.

Je kunt debug logging aanzetten door --debug te specificeren wanneer je de applicatie start vanaf de command-line.

Spring Boot biedt ook een mooi startpunt voor logback om wat defaults te configureren, kleuren etc. het base.xml bestand dat je simpelweg kunt opnemen in je logback.xml bestand. (Dit wordt ook aanbevolen van de standaard logback.xml in Spring Boot.

Commentaren (7)

Je kunt dat doen met je application.properties.

logging.level.=ERROR -> Stelt het root logging level in op error
...
logging.level.=DEBUG -> Stelt het root-logging-niveau in op DEBUG

logging.file=${java.io.tmpdir}/myapp.log -> Stelt het absolute logbestandspad in op TMPDIR/myapp.log

Een verstandige standaard set van application.properties met betrekking tot loggen met profielen zou zijn: application.properties:

spring.application.name=
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log

application-dev.properties:

logging.level.=DEBUG
logging.file=

Wanneer je in je favoriete IDE ontwikkelt, voeg je gewoon een -Dspring.profiles.active=dev als VM argument toe aan de run/debug configuratie van je app.

Dit geeft je alleen error logging in productie en debug logging tijdens ontwikkeling ZONDER de uitvoer naar een logbestand te schrijven. Dit zal de prestaties tijdens ontwikkeling verbeteren ( en SSD schijven enkele uren werk besparen ;) ).

Commentaren (6)

Ik zorg ervoor dat de tip van Dave Syer wat liefde krijgt, omdat het toevoegen van debug=true aan application.properties inderdaad debug logging mogelijk maakt.

Commentaren (0)