Si je développe une bibliothèque Java, est-ce une bonne pratique d’émettre des instructions de journal à partir du code de la bibliothèque?
La journalisation dans la bibliothèque rendra le débogage et le dépannage plus transparents. Par contre, je n'aime pas ajouter des instructions de journalisation à mon code de bibliothèque. Y a-t-il des implications de performances à prendre en compte?
Réponses:
Oui tu devrais. L'utilisation d'une façade de journalisation telle que SLF4J vous offre une flexibilité sans surcharger vos utilisateurs avec un cadre de journalisation particulier.
De plus, si vos utilisateurs n'incluent pas de fichier jar SLF4J (figurant dans le guide de l' utilisateur ):
Si vous êtes préoccupé par les conséquences de la journalisation sur les performances, consultez cette entrée de la FAQ SLF4J . L'idée est que vous fournissiez des paramètres pour consigner les instructions au lieu de les ajouter à une chaîne inline:
SLF4J est-il encore une autre façade d’exploitation forestière?
la source
Oui , vous devriez vous connecter à partir du code de votre bibliothèque. Cela vous aidera non seulement à vous développer, mais les utilisateurs de la bibliothèque le trouveront utile. N'oubliez pas que vous pouvez toujours définir les niveaux de journalisation pour afficher uniquement les instructions de journal dont vous avez besoin, et qu'ils peuvent faire de même.
J'utilisais récemment Mybatis , un outil ORM open source. Je déboguais un problème pour lequel une requête qui, à mon avis, aurait dû être correcte ne renvoyait aucun résultat. Il s’agissait d’une requête paramétrée et, Mybatis ayant ouvert une session dans son code de bibliothèque, j’ai pu l’activer et voir la requête en cours d’exécution. Il était facile de dire que j'ai échangé deux paramètres. Sans me connecter à la bibliothèque, je n'aurais pas pu trouver le problème presque aussi rapidement.
la source