Výnimky z protokolovania pomocou SLF4J

1. Prehľad

V tomto rýchlom návode si ukážeme, ako protokolovať výnimky v Jave pomocou SLF4J API. Použijeme slf4j-simple API ako implementácia protokolovania.

V jednom z našich predchádzajúcich článkov môžete preskúmať rôzne techniky protokolovania.

2. Maven závislosti

Najskôr musíme do našej pridať nasledujúce závislosti pom.xml:

 org.slf4j slf4j-api 1.7.30 org.slf4j slf4j-simple 1.7.30 

Najnovšie verzie týchto knižníc nájdete na serveri Maven Central.

3. Príklady

Všetky výnimky sa zvyčajne zaznamenávajú pomocou súboru chyba() metóda dostupná v Logger trieda. Existuje pomerne veľa variácií tejto metódy. Ideme preskúmať:

void error (String msg); void chyba (formát reťazca, objekt ... argumenty); void error (String msg, Throwable t);

Najskôr inicializujeme Logger že použijeme:

Logger logger = LoggerFactory.getLogger (NameOfTheClass.class);

Ak musíme iba zobraziť chybové hlásenie, môžeme jednoducho pridať:

logger.error ("Nastala výnimka!");

Výstup z vyššie uvedeného kódu bude:

CHYBA packageName.NameOfTheClass - vyskytla sa výnimka!

Toto je dosť jednoduché. Ale aby sme pridali relevantnejšie informácie o výnimke (vrátane sledovania zásobníka), môžeme napísať:

logger.error („Nastala výnimka!“, nová výnimka („vlastná výnimka“));

Výstupom bude:

CHYBA packageName.NameOfTheClass - vyskytla sa výnimka! java.lang.Exception: Vlastná výnimka v packageName.NameOfTheClass.methodName (NameOfTheClass.java:lineNo)

Ak je v prítomnosti viacerých parametrov posledný argument vo vyhlásení o protokolovaní výnimkou, potom SLF4J bude predpokladať, že používateľ chce, aby sa s posledným argumentom zaobchádzalo ako s výnimkou jednoduchého parametra:

logger.error ("{}, {}! Vyskytla sa výnimka!", "Dobrý deň", "Svet", nová výnimka ("Vlastná výnimka"));

Vo vyššie uvedenom úryvku sa nachádza ikona String správa bude naformátovaná na základe podrobností odovzdaného objektu. Ako zástupné symboly sme použili zložené rovnátka String parametre odovzdané metóde.

V takom prípade bude výstupom:

CHYBA packageName.NameOfTheClass - Dobrý deň, svet! Nastala výnimka! java.lang.Exception: Vlastná výnimka v packageName.NameOfTheClass.methodName (NameOfTheClass.java:lineNo)

4. Záver

V tomto rýchlom návode sme zistili, ako zaznamenávať výnimky pomocou rozhrania SLF4J API.

Útržky kódu sú k dispozícii v úložisku GitHub.