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.