Enregistreur pour bibliothèque Java


J'écris une bibliothèque qui rassemble diverses fonctions que je vais utiliser dans différentes applications. Je veux qu'il génère des instructions de journal visibles pour l'utilisateur de la bibliothèque, c'est-à-dire que si je construis une application et que j'utilise la bibliothèque, je veux que la bibliothèque génère des instructions de journal visibles pour moi. Comment je fais cela ? Puisque le fichier journal sera configuré par le développeur de l'application, comment ma bibliothèque saura-t-elle se connecter?

Author: Joe23, 2012-03-16

3 answers

Si vous développez une bibliothèque que les autres incluront dans leur application, vous devez utiliser une façade de journalisation . Sinon, vous forcez les utilisateurs de votre bibliothèque à configurer et à inclure le framework de journalisation que vous avez choisi en plus du framework qu'ils ont choisi pour leur application.

Par exemple si vous utilisez log4j, mais le développeur à l'aide de votre bibliothèque utilise logback, il devra inclure un fichier de configuration log4j et la log4j jar (ou prendre autres mesures ) pour rendre votre bibliothèque heureuse.

Les façades de journalisation résolvent ce problème (à partir de la journalisation Apache Commons):

Lors de l'écriture d'une bibliothèque, il est très utile de consigner des informations. Cependant, il existe de nombreuses implémentations de journalisation et d'une bibliothèque ne peut pas imposer l'utilisation d'un en particulier sur l'application que la bibliothèque est une partie de.

Le paquet de journalisation est un pont ultra-mince entre différentes journalisations application. Une bibliothèque qui utilise l'API commons-logging peut être utilisée avec n'importe quelle implémentation de journalisation lors de l'exécution. Commons-logging est livré avec le support d'un certain nombre d'implémentations de journalisation populaires, et l'écriture d'adaptateurs pour d'autres est une tâche raisonnablement simple.

Ou le raisonnement de SLF4J:

La façade de journalisation simple pour Java ou (SLF4J) sert de façade ou d'abstraction simple pour divers frameworks de journalisation, par exemple java.util.la journalisation, log4j et logback, permettre à l'utilisateur final de brancher le cadre de journalisation souhaité au moment du déploiement de .

Les candidats pour les façades d'exploitation forestière sont:

Personnellement, je recommanderais SLF4J (avec Logback).

 23
Author: Joe23, 2012-03-23 11:50:11

Les solutions standard pour cela sont:

Tous vous permettront de configurer l'emplacement du fichier journal via la configuration.

 3
Author: nwinkler, 2017-05-24 18:57:41

L'emplacement de votre fichier journal est défini en dehors du package, dans une configuration logging framework. Le fichier de configuration est généralement sur classpath. À quoi cela ressemble dépend du cadre de journalisation que vous utilisez - je recommande d'aller avec SLF4J et Logback.

 2
Author: Rostislav Matl, 2017-03-13 18:16:58