Question

J'ai des fichiers JAR qui seront distribués aux clients qui utilisent log4j pour la journalisation. Ma question est la suivante: dois-je inclure une configuration log4j.xml dans le fichier jar ou demander au client d’en fournir une s’il souhaite la journalisation?

Mon sentiment est de laisser le fichier de configuration log4j.xml sur dans les fichiers jar du client, car les fichiers jar apache sont tous livrés avec la consignation log4j, mais sans log4j.xml.

Était-ce utile?

La solution

Oui, laissez tomber. C'est un inconvénient majeur que votre fichier de configuration log4j soit ignoré car l'une des 60 bibliothèques tierces de votre application contient la sienne.

Autres conseils

La bonne chose à propos de log4j dans votre cas est que votre pot ne devrait vraiment pas avoir à vous en préoccuper. Le cas d'utilisation de base de log4j est:

  1. Obtenir un objet de journalisation pour la classe en cours
  2. Appelez l'une des méthodes de cet enregistreur, telle que debug ("un message");

Si les fichiers jar que vous envoyez doivent être utilisés par une application plus grande, idéalement, votre code n'exécutera que les deux étapes décrites ci-dessus. De cette manière, votre code obtiendra simplement des objets de journalisation à partir de l'instance log4j déjà configurée dans l'application cliente. Votre code de production est alors découplé du fait de savoir comment configurer log4j.

Toute journalisation dont vous avez besoin pour votre développement des fichiers JAR peut être réalisée en configurant une instance log4j dans les méthodes setUp () de test unitaire ou quelque chose de similaire qui ne sera pas fourni avec le code de production transmis au client.

Je mettrais une configuration log4j par défaut qui devrait être utile à vos clients dans la documentation. De cette façon, les personnes intéressées peuvent voir quelles options de journalisation vous avez (généralement, certaines classes ont des messages de journalisation plus intéressants, du point de vue de l'utilisateur). Je trouve cela ennuyeux quand une librairie tierce utilise log4j et qu'elle n'a pas de documentation, que des messages de journal remplissent mon écran et que je dois essayer de trouver comment activer ou supprimer certains messages de journal.

Si vous utilisez log4j dans votre application, vous l'incluez dans votre projet. Si vous n'êtes pas, alors pourquoi voudriez-vous le mettre là-bas? Que se passe-t-il si le client A veut log4j version 1.2 et le client B veut log4j version 1.3?

Laissez-les décider de ce dont ils ont besoin pour leurs projets et de ce dont vous avez besoin pour les vôtres.

Je voudrais ajouter le fichier XML de configuration et le charger avec des instructions pour l'utilisateur affichant différentes configurations et options. Cela facilitera pour eux ou le support technique l'activation de la journalisation des ajouts.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top