J'écris une bibliothèque et j'utilise sfl4j pour gérer la journalisation.Meilleures pratiques SLF4J
Je pense que c'est une bonne idée aussi longtemps que tout le monde peut fournir sa propre implémentation et ensuite, le journal fourni par mon application sera géré correctement.
Mais je ne sais pas si je dois fournir une implémentation en tant que dépendance transitive ou non.
Exemple:
Si je fournis seulement:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
L'utilisateur de mon lib peut choisir la mise en œuvre, mais s'il suffit d'ajouter ma lib sans lecture de la configuration, il ne fonctionnera pas
Sinon, si je fournis que:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
Mon lib fonctionne correctement au moment d'ajouter une dépendance, mais si l'utilisateur veut utiliser un autre slf4j, il devra exclure le mien.
Qu'est-ce que vous pensez de cela?
est-ce une question maven? si c'est le cas, merci de marquer comme tel –
Merci, à moi, c'est une question générale, mais dans mon exemple j'utilise maven. Donc, je devrais l'étiqueter;) – Christophe
Lorsque vous dites que cela ne fonctionnera pas si vous ne fournissez pas une implémentation, vous voulez dire que votre bibliothèque ne fonctionnera pas ou la journalisation ne fonctionnera pas? – Ceki