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. p>
Alors je veux savoir quand je peux aller pour Java Logger et quand je peux aller pour loger log4j. p>
5 Réponses :
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. p>
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. P>
Même pour des tâches simples, log4J est très préférable à java.util.logging code>, 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.
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. P>
Une fois que vous êtes allé pour slf4j, allez également pour le logback a "rel =" Nofollow Noreferrer "> logback.qos.ch/ "> LOGBACK A A >> Comme il s'agit de la version améliorée de log4J (même auteur).
Je trouve log4J plus flexible lorsqu'il s'agit de modifier la journalisation CFG sans ré-compilation de code dans l'environnement de production. P>
Oui, je choisirais toujours / conseiller d'utiliser Log4J, sur défaut de journalisation Java. Ensuite, j'ai découvert la journalisation des biens de la communication, où il est possible de démarrer pour faire cette décision. Ce qui est génial, comme peut-être dans la production java standard est nécessaire (pour une raison quelconque). Et pendant le développement, vous avez la flexibilité / la puissance de Log4J. Mais de nos jours, je n'utiliserais plus ces deux paquets! Les forfaits que je conseillerais d'utiliser maintenant sont SLF4J ( slf4j.org ) et arriétrage (
Il y a le Apache Commoms Logging projet et slf4j , qui résume la bibliothèque de journalisation sous-jacente. P>
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. P>
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.
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. P>
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 P >
Espérons que c'est utile. p>