Protokollieren von Ausnahmen mit SLF4J

1. Übersicht

In diesem kurzen Tutorial zeigen wir, wie Ausnahmen in Java mithilfe der SLF4J-API protokolliert werden. Wir werden die slf4j-simple API als Protokollierungsimplementierung verwenden.

In einem unserer vorherigen Artikel können Sie verschiedene Protokollierungstechniken untersuchen.

2. Maven-Abhängigkeiten

Zuerst müssen wir unserer pom.xml die folgenden Abhängigkeiten hinzufügen :

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

Die neuesten Versionen dieser Bibliotheken finden Sie in Maven Central.

3. Beispiele

Normalerweise werden alle Ausnahmen mit der in der Logger- Klasse verfügbaren error () -Methode protokolliert . Es gibt einige Variationen dieser Methode. Wir werden untersuchen:

void error(String msg); void error(String format, Object... arguments); void error(String msg, Throwable t);

Lassen Sie uns zuerst den Logger initialisieren, den wir verwenden werden:

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

Wenn wir nur die Fehlermeldung anzeigen müssen, können wir einfach hinzufügen:

logger.error("An exception occurred!");

Die Ausgabe des obigen Codes lautet:

ERROR packageName.NameOfTheClass - An exception occurred!

Das ist einfach genug. Um jedoch relevantere Informationen über die Ausnahme (einschließlich der Stapelverfolgung) hinzuzufügen, können wir schreiben:

logger.error("An exception occurred!", new Exception("Custom exception"));

Die Ausgabe wird sein:

ERROR packageName.NameOfTheClass - An exception occurred! java.lang.Exception: Custom exception at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)

Wenn bei Vorhandensein mehrerer Parameter das letzte Argument in einer Protokollierungsanweisung eine Ausnahme darstellt, geht SLF4J davon aus, dass der Benutzer möchte, dass das letzte Argument als Ausnahme anstelle eines einfachen Parameters behandelt wird:

logger.error("{}, {}! An exception occurred!", "Hello", "World", new Exception("Custom exception"));

Im obigen Snippet wird die String- Nachricht basierend auf den übergebenen Objektdetails formatiert. Wir haben geschweifte Klammern als Platzhalter für an die Methode übergebene String- Parameter verwendet.

In diesem Fall lautet die Ausgabe:

ERROR packageName.NameOfTheClass - Hello, World! An exception occurred! java.lang.Exception: Custom exception at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)

4. Fazit

In diesem kurzen Tutorial haben wir herausgefunden, wie Ausnahmen mithilfe der SLF4J-API protokolliert werden.

Die Codefragmente sind im GitHub-Repository verfügbar.