Comment enregistreur a > comparer à Apache log4j ? P>
Lequel est le meilleur pour les nouveaux projets ciblés Java 6? Comment se comparent-ils en termes de flexibilité et de configurabilité? P>
6 Réponses :
Je n'ai jamais utilisé l'enregistreur Direct JDK, mais pour un nouveau projet, je recommanderais fortement LOWBACK A >,
conçu comme successeur pour log4j. Certaines des très belles choses que vous pouvez faire avec cela: aller de p> à p> inconvénients - beaucoup de packages nécessitent de toute façon log4j, car il est si courant, votre projet peut donc nécessiter d'inclure 2 packages de journalisation. P> P>
La dépendance existante log4J me rend tenté de m'en tenir à ces projets!
À mon esprit La seule chose que le JDK Logger a dura pour cela, c'est que cela fait partie de la JDK, il ne s'agit donc pas d'une dépendance externe. Si le choix est seulement entre ces deux, j'irais avec log4j. Il a toujours un meilleur soutien en termes d'appendeurs, le nombre de personnes qui le connaissent (dans mes observations anecdotiques) et une meilleure API (qui est aussi subjective). P>
Démarrage d'un projet aujourd'hui, la chose la plus tentante à faire est d'aller avec SLF4J et Deffer la décision - Vous pouvez toujours brancher un cadre différent sous SLF4J en modifiant simplement le point de classe. P>
Cela étant dit qu'il existe d'autres options (telles que Log5J) qui profitent des dernières fonctionnalités de la langue Java. Je recommanderais de prendre un look long logback (de l'un des principaux programmeurs de log4J, de même que SLF4J). p>
Après avoir examiné le logback, je pense que je vais l'utiliser pour de nouveaux projets sans aucune dépendance à la bibliothèque sur Log4J et Log4J autrement.
Pour un nouveau projet, je recommanderais vivement le projet SLF4J qui fournit des fronts génériques à plusieurs cadres d'enregistrement. P>
Le {} -syntax décrit par Steve B est présent dans SLF4J (même auteur) afin de bénéficier de tous les avantages indépendamment du backend, et d'obtenir encore l'indépendance du backend. Un pont log4j est également disponible afin que le code existant puisse utiliser de manière transparente SLF4J. C'est vraiment bien. P>
Pour le backend réel, LOWBACK est agréable, mais vous avez peut-être déjà investi dans Log4J - c'est facilement avergible. P>
Je recommanderais le API de journalisation JDK . Je l'ai utilisé depuis de nombreuses années, sans aucun problème. Cela fait partie de la JDK, donc aucun pot supplémentaire n'est requis. Les distinctions entre Log4J et JDK Logging sont petites et, à mon avis, ne justifient pas l'utilisation de log4J. p>
API standard vs log4j em> strong> p>
Une question commune posée par les développeurs Java est la suivante: p>
Pourquoi devrions-nous utiliser le cadre de journalisation log4J lorsque Java fournit une API
pour la journalisation. L'API Java est accessible par (java.util.logging)? P>
blockQuote>
log4j a suivi des avantages sur l'API de journalisation standard: P>
Cette question commune est exactement ce que je pense actuellement (et pourquoi je suis ici), mais cette réponse me confond plus. Dans cette réponse, qu'est-ce que cela signifie exactement par "robuste", pourquoi log4J est-il plus robuste? Quand il s'agit de «plus de fonctionnalités», y a-t-il des points forts? Encore une fois avec la robustesse, quel est un système de formatage robuste? Je vais admettre que je suis «nouveau» à vous connecter à Java, mais ces implémentations semblent terriblement sur le dessus pour la plupart des applications de petite taille.
J'ai eu du mal à cette question plusieurs fois; avec JDK7 et JDK8; Java Logging Super Fast and Slick, mais seulement la chose dont nous avons besoin de mettre un chapeau de programmateur lors de la configuration. P>
Pour vous connecter à plusieurs déstichants de fichiers, nous avons besoin de créer des classes SimAre Extending Fielhandler et de les utiliser dans le fichier de propriétés pour configurer, ce type de complexité semble consommer du temps mais une fois que vous avez accroché l'efficacité et la fiabilité sont géniales. P>
Presque tout ce qui est meilleur que
java.util.logging code>, même si cela signifie introduire une dépendance tierce.