Ako zakázať protokolovanie konzoly v Spring Boot

1. Prehľad

Denníky konzoly nám zvyčajne dávajú príležitosť ladiť náš systém jednoduchým a intuitívnym spôsobom. Napriek tomu existujú prípady, keď nechceme povoliť túto funkciu v našom systéme.

V tomto rýchlom návode uvidíme, ako sa vyhnúť prihláseniu do konzoly pri spustení aplikácie Spring Boot.

Zovšeobecníme to jednoduchými príkladmi, ktoré ukazujú, ako to dosiahnuť, či už používame protokoly Logback, Log4js2 alebo dokonca rámec Java Util Logging.

Ak sa chcete dozvedieť viac informácií o protokolovacích rámcoch pre Spring Boot, odporúčame vám pozrieť sa na náš návod Logging in Spring Boot.

2. Ako zakázať výstup z konzoly na prihlásenie

Ak náš projekt používa štartéry Spring Boot, potom prihlasovanie jar-topánka-štartér závislosť bude tiež zahrnutá.

Tento konkrétny štartér nakonfiguruje Logback ako predvolený rámec a pôvodne sa predvolene prihlási iba do konzoly.

Táto konfigurácia môže byťprispôsobené pridaním a logback-spring.xml súbor do našich zdrojov.

Napríklad nastavíme XML tak, aby sme deaktivovali výstup z konzoly a prihlásili sa iba do súboru:

Ďalej budeme potrebovať logovanie.soubor konfiguračná vlastnosť v našom application.properties spis:

logging.file = baeldung-disabled-console.log

Poznámka: Čo tu vlastne zakazuje výstup na konzolu, je skutočnosť, že nezahŕňame console-appender.xml v našom XMLsúbor, takže prázdny konfigurácia značka by tiež urobila trik.

Prípadnemôžeme sa vyhnúť vytvoreniu XMLsúbor prepísaním predvolenej konfigurácie s vlastnosťami aplikácie.

Napríklad môžeme potenciálne využiť logging.pattern.console nehnuteľnosť:

logging.pattern.console =

Táto vlastnosť je preložená do CONSOLE_LOG_PATTERN systémová vlastnosť, ktorú potom použije predvolená konfigurácia konzoly Spring.

Tento prístup samozrejme nie je taký čistý a pevný ako ten predchádzajúci. Nejde o zamýšľaný účel vlastníctva, preto spoločnosť Logback nemusí tento „hack“ niekedy podporovať.

Ďalej môžeme zakázať všetku činnosť protokolovania nastavením hodnoty úrovne koreňového protokolovača na VYPNUTÝ:

logging.level.root = VYPNUTÉ

3. Ako sa vyhnúť prihláseniu do konzoly pomocou aplikácie Log4j2

Ako možno vieme, Log4j2 podporuje formáty XML, JSON, YAML alebo vlastnosti na konfiguráciu svojho správania pri prihlasovaní.

Kvôli jednoduchosti si ukážeme iba jednoduchý príklad a log4j2.xml súbor tentokrát.

Ostatné formáty rešpektujú rovnakú konfiguračnú štruktúru:

Rovnako ako v prípade nastavenia Logback, dôvodom, prečo sa framework vyhýba prihláseniu na konzolu, nie je konfigurácia „sama o sebe“, ale skutočnosť, že koreňový záznamník neobsahuje odkaz na konzolového dodávateľa.

4. Ako zakázať protokolovanie konzoly pre protokolovanie Java Util

Protokolovanie Java Util Logging (alebo jednoducho „JUL“) nemusí byť v dnešnej dobe najpopulárnejším protokolovacím riešením pre aplikácie Spring Boot.

Každopádne si zanalyzujeme, ako sa môžeme zbaviť protokolov konzoly, ak je rámec v našom projekte prítomný.

Všetko, čo musíme urobiť, je pridať nasledujúce hodnoty k predvoleným hodnotám logovanie.vlastnosti v našej zložke zdrojov:

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

A zahrňte logovanie.soubor majetok v našom application.properties spis. Trik urobí akákoľvek hodnota:

logging.file = true

5. Záver

Pomocou týchto krátkych príkladov môžeme teraz bezproblémovo deaktivovať protokoly konzoly v našej aplikácii bez ohľadu na to, aký rámec protokolovania používame.

Ako vždy, implementácie príkladov nájdeme v našom úložisku Github.


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