Journalisation des exceptions à l'aide de SLF4J

1. Vue d'ensemble

Dans ce tutoriel rapide, nous montrerons comment consigner des exceptions en Java à l'aide de l'API SLF4J. Nous utiliserons l' API slf4j-simple comme implémentation de journalisation.

Vous pouvez explorer différentes techniques de journalisation dans l'un de nos articles précédents.

2. Dépendances de Maven

Tout d'abord, nous devons ajouter les dépendances suivantes à notre pom.xml :

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

Les dernières versions de ces bibliothèques sont disponibles sur Maven Central.

3. Exemples

En général, toutes les exceptions sont enregistrées à l'aide de la méthode error () disponible dans la classe Logger . Il existe de nombreuses variantes de cette méthode. Nous allons explorer:

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

Commençons par initialiser le Logger que nous allons utiliser:

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

Si nous devons juste afficher le message d'erreur, nous pouvons simplement ajouter:

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

La sortie du code ci-dessus sera:

ERROR packageName.NameOfTheClass - An exception occurred!

C'est assez simple. Mais pour ajouter des informations plus pertinentes sur l'exception (y compris la trace de pile), nous pouvons écrire:

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

La sortie sera:

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

En présence de plusieurs paramètres, si le dernier argument d'une instruction de journalisation est une exception, alors SLF4J présumera que l'utilisateur souhaite que le dernier argument soit traité comme une exception au lieu d'un simple paramètre:

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

Dans l'extrait de code ci-dessus, le message String sera formaté en fonction des détails de l'objet transmis. Nous avons utilisé des accolades comme espaces réservés pour les paramètres String passés à la méthode.

Dans ce cas, la sortie sera:

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

4. Conclusion

Dans ce rapide tutoriel, nous avons découvert comment consigner les exceptions à l'aide de l'API SLF4J.

Les extraits de code sont disponibles sur dans le référentiel GitHub.