Registrering av unntak ved bruk av SLF4J
1. Oversikt
I denne raske opplæringen viser vi hvordan du logger unntak i Java ved hjelp av SLF4J API. Vi bruker slf4j-enkel API som loggføring.
Du kan utforske forskjellige loggteknikker i en av våre tidligere artikler.
2. Maven-avhengigheter
Først må vi legge til følgende avhengigheter i vår pom.xml:
org.slf4j slf4j-api 1.7.30 org.slf4j slf4j-enkel 1.7.30
De siste versjonene av disse bibliotekene finnes på Maven Central.
3. Eksempler
Vanligvis logges alle unntak ved hjelp av feil() metoden tilgjengelig i Logger klasse. Det er ganske mange varianter av denne metoden. Vi skal utforske:
ugyldig feil (streng msg); ugyldig feil (strengformat, objekt ... argumenter); ugyldig feil (String msg, Throwable t);
La oss først initialisere Logger som vi skal bruke:
Logger logger = LoggerFactory.getLogger (NameOfTheClass.class);
Hvis vi bare må vise feilmeldingen, kan vi bare legge til:
logger.error ("Det oppstod et unntak!");
Resultatet av koden ovenfor vil være:
FEIL packageName.NameOfTheClass - Det oppstod et unntak!
Dette er enkelt nok. Men for å legge til mer relevant informasjon om unntaket (inkludert stabelspor) kan vi skrive:
logger.error ("Det oppstod et unntak!", nytt unntak ("Tilpasset unntak"));
Resultatet blir:
FEIL packageName.NameOfTheClass - Det oppstod et unntak! java.lang.Exception: Egendefinert unntak ved packageName.NameOfTheClass.methodName (NameOfTheClass.java:lineNo)
I nærvær av flere parametere, hvis det siste argumentet i en loggesetning er et unntak, vil SLF4J anta at brukeren vil at det siste argumentet skal behandles som et unntak i stedet for en enkel parameter:
logger.error ("{}, {}! Det oppstod et unntak!", "Hei", "Verden", nytt unntak ("Tilpasset unntak"));
I utdraget ovenfor er String meldingen blir formatert basert på de sendte objektdetaljene. Vi har brukt krøllete bukseseler som plassholdere for String parametere sendt til metoden.
I dette tilfellet vil utgangen være:
FEIL packageName.NameOfTheClass - Hei, verden! Et unntak skjedde! java.lang.Exception: Egendefinert unntak ved packageName.NameOfTheClass.methodName (NameOfTheClass.java:lineNo)
4. Konklusjon
I denne raske opplæringen fant vi ut hvordan du loggførte unntak ved hjelp av SLF4J API.
Kodebitene er tilgjengelig i GitHub-depotet.