7
votes

Différence d'utilisation java.util.logging et log4j

Je développe une demande Java pour laquelle je dois utiliser un mécanisme de journalisation. Et maintenant, je suis confus de choisir l'enregistreur de bibliothèques Java ou d'aller pour loger Log4J.

Alors je veux savoir quand je peux aller pour Java Logger et quand je peux aller pour loger log4j.


0 commentaires

5 Réponses :


3
votes

La classe de l'enregistreur ne faisait pas partie de JDK plus tôt, de sorte que plusieurs implémentations de bibliothèques ont été suspendues. La bibliothèque Log4J possède l'un des équipements de journalisation les plus complets (formateurs, annexes, etc.). Cependant, pour la plupart des développeurs, ce serait un overkill et le simple Java.Util.Logger suffirait.

J'utilise personnellement un wrapper personnalisé sur ma mise en œuvre de l'enregistreur. Cela me permet de définir des appels personnalisés pour effectuer une journalisation / audit fonctionnelle.


4 commentaires

Même pour des tâches simples, log4J est très préférable à java.util.logging , qui est tout simplement méchant


Probablement pas! Je me souviens de l'un de mes amis de mon jeune frère envoyant sa mission qui ne serait pas exécutée à cause de la dépendance log4j. Le problème est avec CLASSPATH, son critique n'a pas été aussi impressionné. Certaines personnes sont simplement réticentes à apprendre.


Oui, malheureusement heureusement, les devoirs de votre ami de votre frère ne régissent pas ce qui est et n'est pas une bonne pratique en Java.


Je le souhaite non plus, le point que je faisais était que la dépendance aux fichiers de jar externes peut épauler des ravages et peut être évitée.



10
votes

Je vous suggérerais d'aller avec SLF4J à la place de découpler votre application à partir de cadres de journalisation spécifiques. Il dispose d'adaptateurs pour diverses cadres de journalisation populaires tels que Jakarta Logging, JDK1.4 Logging, Log4J, etc., ce qui en fait une bonne abstraction pour les besoins de la journalisation.


1 commentaires


3
votes

Il y a le Apache Commoms Logging projet et slf4j , qui résume la bibliothèque de journalisation sous-jacente.

Dans la pratique, j'ai tendance à utiliser Log4J sur les classes de journalisation intégrées. Principalement parce que Log4J peut être configuré par application Web dans un serveur d'applications, alors que la journalisation JDK est configurée par JVM.


3 commentaires

La journalisation des Commons utilisait des problèmes de chargeur de classe de classe sérieux. Fais attention.


Seulement dans certains environnements spécifiques; Dans la plupart des situations, tout va bien.


En effet, vous pouvez voir SLF4J comme une version améliorée de la journalisation des communes.



3
votes

L'approche que je recommanderais actuellement est d'utiliser SLF4J comme API de journalisation. Vous pouvez ensuite choisir votre cadre de journalisation en fonction de vos besoins que vous les découvrez.

J'ai fait une écriture sur ce que je considère comme la meilleure pratique de démarrer avec SLF4J et un simple "journal à System.out" qui est actuellement placé à. http://runjva.appot.com/logging101/index.html

Espérons que c'est utile.


0 commentaires