Slik deaktiverer du konsollogging i vårstart

1. Oversikt

Vanligvis gir konsolllogger oss muligheten til å feilsøke systemet vårt på en enkel og intuitiv måte. Likevel er det anledninger når vi ikke vil aktivere denne funksjonen i systemet vårt.

I denne raske opplæringen, vi får se hvordan vi kan unngå å logge på konsollen når du kjører et Spring Boot-program.

Vi holder det enkelt med rett-til-punkt-eksempler som viser hvordan du kan oppnå dette, enten vi bruker Logback, Log4js2 eller til og med Java Util Logging-rammeverket.

For å lære mer om loggerammer for Spring Boot, foreslår vi at du tar en titt på vår Logging in Spring Boot-veiledning.

2. Slik deaktiverer du konsollutgangen for tilbakekobling

Hvis prosjektet vårt bruker Spring Boot startere, så spring-boot-starter-logging avhengighet vil også bli inkludert.

Denne spesielle starteren konfigurerer Logback som standard rammeverk og logger først bare på konsollen som standard.

Denne konfigurasjonen kan væretilpasset ved å legge til en logback-spring.xml arkiv til ressursene våre.

La oss for eksempel sette opp XML for å deaktivere konsollutgangen og bare logge på en fil:

I tillegg trenger vi logging. fil konfigurasjonsegenskap i vår application.properties fil:

logging.file = baeldung-disabled-console.log

Merk: Det som faktisk deaktiverer konsollutgangen her er det faktum at vi ikke inkluderer konsoll-appender.xml i vår XMLfil, så en tom konfigurasjon tag ville også gjøre susen.

Alternativtvi kan unngå å lage XMLfilen ved å overstyre standardkonfigurasjonen med applikasjonsegenskaper.

For eksempel kan vi potensielt gjøre bruk av logging.pattern.console eiendom:

logging.pattern.console =

Denne eiendommen er oversatt til CONSOLE_LOG_PATTERN systemegenskap, som deretter brukes av vårens standard konsollkonfigurasjon.

Denne tilnærmingen er selvfølgelig ikke så ren og solid som den forrige. Det er ikke det tiltenkte formålet med eiendommen, og derfor kan dette "hacket" kanskje ikke støttes av Logback på et eller annet tidspunkt.

Videre kan vi deaktivere all loggaktivitet ved å sette verdien på rotloggernivået til AV:

logging.level.root = AV

3. Hvordan unngå å logge på konsollen med Log4j2

Som vi kanskje vet, støtter Log4j2 XML-, JSON-, YAML- eller egenskaperformater for å konfigurere loggføringsatferden.

For enkelhets skyld vil vi bare vise et enkelt eksempel på en log4j2.xml arkiv denne gangen.

De andre formatene respekterer den samme konfigurasjonsstrukturen:

Som med Logback-oppsettet, er grunnen til at rammeverket unngår logging til konsollen ikke konfigurasjonen ‘per se’, men det faktum at Root Logger ikke inneholder en referanse til en Console Appender.

4. Slik deaktiverer du konsollogging for Java Util-logging

Java Util Logging (eller ganske enkelt ‘JUL’) er kanskje ikke den mest populære loggløsningen for Spring Boot-applikasjoner i dag.

Uansett vil vi analysere hvordan vi kan bli kvitt konsollogger, i tilfelle rammeverket er tilstede i prosjektet vårt.

Alt vi trenger å gjøre er å legge til følgende verdier til standardverdien logging.egenskaper i ressursmappen vår:

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

Og inkluder logging. fil eiendom i vår application.properties fil. Enhver verdi vil gjøre susen:

logging.file = true

5. Konklusjon

Med disse korte eksemplene kan vi nå deaktivere konsollogger i applikasjonen vår på en problemfri måte, uansett hvilket loggingsrammeverk vi bruker.

Som alltid kan vi finne eksemplene på implementeringer i Github-arkivet vårt.


$config[zx-auto] not found$config[zx-overlay] not found