Logning af undtagelser ved hjælp af SLF4J

1. Oversigt

I denne hurtige vejledning viser vi, hvordan du logger undtagelser i Java ved hjælp af SLF4J API. Vi bruger slf4j-enkel API som logning implementering.

Du kan udforske forskellige logningsteknikker i en af ​​vores tidligere artikler.

2. Maven-afhængigheder

Først skal vi tilføje følgende afhængigheder til vores pom.xml:

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

De nyeste versioner af disse biblioteker kan findes på Maven Central.

3. Eksempler

Normalt logges alle undtagelser ved hjælp af fejl() metode tilgængelig i Logger klasse. Der er en hel del variationer af denne metode. Vi skal udforske:

ugyldig fejl (String msg); ugyldig fejl (strengformat, objekt ... argumenter); ugyldig fejl (String msg, Throwable t);

Lad os først initialisere Logger som vi skal bruge:

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

Hvis vi bare skal vise fejlmeddelelsen, kan vi blot tilføje:

logger.error ("Der opstod en undtagelse!");

Output af ovenstående kode vil være:

FEJL packageName.NameOfTheClass - Der opstod en undtagelse!

Dette er enkelt nok. Men for at tilføje mere relevant information om undtagelsen (inklusive stacksporingen) kan vi skrive:

logger.error ("Der opstod en undtagelse!", ny undtagelse ("Brugerdefineret undtagelse"));

Outputtet vil være:

FEJL packageName.NameOfTheClass - Der opstod en undtagelse! java.lang.Exception: Brugerdefineret undtagelse ved packageName.NameOfTheClass.methodName (NameOfTheClass.java:lineNo)

I nærvær af flere parametre, hvis det sidste argument i en logafgørelse er en undtagelse, antager SLF4J, at brugeren ønsker, at det sidste argument skal behandles som en undtagelse i stedet for en simpel parameter:

logger.error ("{}, {}! Der opstod en undtagelse!", "Hej", "Verden", ny undtagelse ("Brugerdefineret undtagelse"));

I ovenstående uddrag er Snor beskeden formateres baseret på de videregivne objektdetaljer. Vi har brugt krøllede seler som pladsholdere til Snor parametre sendt til metoden.

I dette tilfælde vil output være:

FEJL packageName.NameOfTheClass - Hej verden! Der opstod en undtagelse! java.lang.Exception: Brugerdefineret undtagelse ved packageName.NameOfTheClass.methodName (NameOfTheClass.java:lineNo)

4. Konklusion

I denne hurtige vejledning fandt vi ud af, hvordan man logger undtagelser ved hjælp af SLF4J API.

Kodestykkerne er tilgængelige i GitHub-arkivet.


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