Uitzonderingen vastleggen met SLF4J

1. Overzicht

In deze korte zelfstudie laten we zien hoe u uitzonderingen in Java registreert met behulp van de SLF4J API. We gebruiken de slf4j-eenvoudig API als de logging-implementatie.

U kunt verschillende logboektechnieken verkennen in een van onze vorige artikelen.

2. Maven afhankelijkheden

Eerst moeten we de volgende afhankelijkheden toevoegen aan onze pom.xml:

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

De nieuwste versies van deze bibliotheken zijn te vinden op Maven Central.

3. Voorbeelden

Gewoonlijk worden alle uitzonderingen gelogd met de fout() methode beschikbaar in de Logger klasse. Er zijn nogal wat variaties op deze methode. We gaan verkennen:

ongeldige fout (String msg); ongeldige fout (String-formaat, Object ... argumenten); ongeldige fout (String msg, Throwable t);

Laten we eerst het Logger die we gaan gebruiken:

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

Als we alleen de foutmelding moeten laten zien, kunnen we eenvoudig toevoegen:

logger.error ("Er is een uitzondering opgetreden!");

De output van de bovenstaande code zal zijn:

ERROR packageName.NameOfTheClass - Er is een uitzondering opgetreden!

Dit is eenvoudig genoeg. Maar om meer relevante informatie over de uitzondering toe te voegen (inclusief de stacktrace), kunnen we schrijven:

logger.error ("Er is een uitzondering opgetreden!", nieuwe uitzondering ("Aangepaste uitzondering"));

De output zal zijn:

ERROR packageName.NameOfTheClass - Er is een uitzondering opgetreden! java.lang.Exception: aangepaste uitzondering op packageName.NameOfTheClass.methodName (NameOfTheClass.java:lineNo)

Als in aanwezigheid van meerdere parameters het laatste argument in een logging-instructie een uitzondering is, dan gaat SLF4J ervan uit dat de gebruiker wil dat het laatste argument wordt behandeld als een uitzondering in plaats van als een eenvoudige parameter:

logger.error ("{}, {}! Er is een uitzondering opgetreden!", "Hallo", "Wereld", nieuwe uitzondering ("Aangepaste uitzondering"));

In het bovenstaande fragment, de Draad bericht wordt opgemaakt op basis van de doorgegeven objectdetails. We hebben accolades gebruikt als tijdelijke aanduidingen voor Draad parameters doorgegeven aan de methode.

In dit geval is de uitvoer:

FOUT packageName.NameOfTheClass - Hallo, wereld! Er is een uitzondering opgetreden! java.lang.Exception: aangepaste uitzondering op packageName.NameOfTheClass.methodName (NameOfTheClass.java:lineNo)

4. Conclusie

In deze korte tutorial hebben we ontdekt hoe uitzonderingen kunnen worden geregistreerd met behulp van de SLF4J API.

De codefragmenten zijn beschikbaar in de GitHub-opslagplaats.