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.


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