Bonjour à tous,


Je voudrais avoir votre avis en temps que "développeur, utilisateur d'APIs externes" sur l'utilisation de facades de logging telles que SLF4J en comparaison avec l'utilisation de l'API de logging standard.

Je m'explique : Prenez le cas où vous développez une application, celle ci nécessitant l'utilisation de plusieurs APIs externes.
Préféreriez vous que ces APIs externes utilisent une couche d'abstraction pour le logging (comme SLF4J) afin de pouvoir facilement choisir et configurer une implémentation unifiée du logging. Ou bien préféreriez vous qu'elles utilisent l'API java.util.logging afin de ne pas avoir de dépendance supplémentaires.

Voici rapidement les avantages/inconvénients que je vois :

Facades de logging
  • avantages : l'implémentation du logging peut être unifié, une seule configuration à gérer pour l'ensemble de l'application et des API externes, l'implémentation peut être changée facilement.
  • inconvénients : dépendances supplémentaires (quid si les versions de la facade diffèrent ?).


java.util.logging
  • avantages : Pas de dépendances supplémentaires, standard.
  • inconvénients : implémentation du logging "forcée" (java.util.logging) pour ces APIs externes. Soit vous utilisez la même dans votre application pour une implémentation unifiée, soit vous en utilisez une autre et devez donc gérer les 2 configurations.


Vous me direz que finalement cela dépend si on utilise java.util.logging dans son application ou bien une autre API de logging, et bien qu'en est-il de vous ?

Préférez vous voir une API externe utiliser java.util.logging ou une facade de logging ?