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.