Console-logboekregistratie uitschakelen in Spring Boot

1. Overzicht

Gewoonlijk bieden consolelogboeken ons de mogelijkheid om ons systeem op een gemakkelijke en intuïtieve manier te debuggen. Er zijn echter situaties waarin we deze functie niet in ons systeem willen inschakelen.

In deze korte tutorial, we zullen zien hoe we kunnen voorkomen dat inloggen op de console tijdens het uitvoeren van een Spring Boot-applicatie.

We houden het simpel met directe voorbeelden die laten zien hoe u dit kunt bereiken, of we nu Logback, Log4js2 of zelfs het Java Util Logging-framework gebruiken.

Om meer te weten te komen over logging frameworks voor Spring Boot, raden we je aan om onze Logging in Spring Boot tutorial te bekijken.

2. Hoe u de console-uitvoer voor logback kunt uitschakelen

Als ons project Spring Boot-starters gebruikt, dan is het spring-boot-starter-logging afhankelijkheid wordt ook meegenomen.

Deze specifieke starter configureert Logback als het standaardframework en logt in eerste instantie standaard alleen in op de console.

Deze configuratie kan zijnaangepast door een logback-spring.xml bestand toe aan onze bronnen.

Laten we bijvoorbeeld de XML instellen om de console-uitvoer uit te schakelen en alleen in een bestand in te loggen:

Bovendien hebben we het logging.file configuratie-eigenschap in ons application.properties het dossier:

logging.file = baeldung-uitgeschakeld-console.log

Opmerking: wat de console-uitvoer hier eigenlijk uitschakelt, is het feit dat we de console-appender.xml in onze XMLbestand, dus een leeg configuratie tag zou ook de truc doen.

Alternatief,we kunnen voorkomen dat de XML wordt gemaaktbestand door de standaardconfiguratie te overschrijven met applicatie-eigenschappen.

We kunnen bijvoorbeeld mogelijk gebruik maken van de logging.pattern.console eigendom:

logging.pattern.console =

Deze eigenschap is vertaald naar het CONSOLE_LOG_PATTERN systeemeigenschap, die vervolgens wordt gebruikt door de standaardconsoleconfiguratie van Spring.

Deze aanpak is natuurlijk niet zo schoon en solide als de vorige. Het is niet het beoogde doel van de eigenschap, dus deze ‘hack 'wordt op een gegeven moment mogelijk niet ondersteund door Logback.

Bovendien kunnen we alle logboekactiviteit uitschakelen door de waarde van het rootlogger-niveau in te stellen op UIT:

logging.level.root = UIT

3. Hoe u kunt voorkomen dat u met Log4j2 inlogt op de console

Zoals we wellicht weten, ondersteunt Log4j2 XML-, JSON-, YAML- of eigenschappenformaten om het loggedrag te configureren.

Voor de eenvoud laten we een eenvoudig voorbeeld zien van een log4j2.xml bestand deze keer.

De andere formaten respecteren dezelfde configuratiestructuur:

Net als bij de Logback-configuratie, is de reden waarom het framework loggen op de console vermijdt, niet de configuratie 'per se', maar het feit dat de Root Logger geen verwijzing naar een Console Appender bevat.

4. Hoe consolelogboekregistratie uitschakelen voor logboekregistratie in Java

Java Util Logging (of simpelweg 'JUL') is tegenwoordig misschien niet de meest populaire logging-oplossing voor Spring Boot-applicaties.

Hoe dan ook, we zullen analyseren hoe we consolelogboeken kunnen verwijderen, voor het geval het framework aanwezig is in ons project.

Het enige wat we hoeven te doen is de volgende waarden aan de standaardwaarde toevoegen logging.properties in onze bronnenmap:

handlers = java.util.logging.FileHandler java.util.logging.FileHandler.pattern = baeldung.log java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

En neem de logging.file eigendom in ons application.properties het dossier. Elke waarde is voldoende:

logging.file = waar

5. Conclusie

Met deze korte voorbeelden kunnen we consolelogboeken in onze applicatie nu probleemloos uitschakelen, ongeacht het logging-framework dat we gebruiken.

Zoals altijd kunnen we de implementaties van de voorbeelden vinden in onze Github-repository.