7
votes

Java Logging vs log4j dans le cadre de printemps. Lequel est le plus approprié

Nous développons une application Web en Java en utilisant la structure de printemps. Nous vous demandons quel système de journalisation serait le plus approprié pour celui-ci, que log4j ou juillet (java.util.logging) intégré à JDK. En ce qui me concerne, le premier est plus populaire parmi les développeurs et offre des options de personnalisation plus élevées, mais je ne suis pas sûr qui est plus simple de s'adapter au printemps.

Toute aide sera appréciée.

Merci!


2 commentaires

Dupliquer Stackoverflow.com/Questtions/31840/java-logging-vs-log4j


JFYI: Si vous souhaitez simplifier l'instanciation des enregistreurs, vous pouvez essayer ce projet: Github.com/vbauer/herald


4 Réponses :


5
votes

Avant de commencer avec log4j, consultez logback . Log4J ne devrait plus être utilisé pour de nouveaux projets. Si vous avez du code hérité qui nécessite un cadre de journalisation, utilisez slf4j pour que l'ancien code parle à la connexion (ou log4j Si vous devez).

Les principales raisons pour lesquelles vous ne devriez pas utiliser JUL est que cela implémente le strict minimum dont vous avez besoin pour la journalisation, la configuration est au mieux et, si vous utilisez un composant qui ne l'utilise pas, vous devrez traiter avec deux cadres forestières.


5 commentaires

Changer les cadres de journalisation est fortement surestimé! Il n'y a rien de mal avec Log4j, il prend en charge une merveilleuse gamme d'options d'écriture de fichiers et le travail doit-il répondre.


"Veuillez allumer JavaScript pour voir ce menu" - Désolé de connecter, vous échouez.


Il ne change pas, il regarde son premier cadre d'exploitation forestière. Dans ce cas, il ne devrait pas commencer par un oldtimer.


@Michael: Je suggère de dire que à l'auteur. Je ne peux vraiment rien faire à ce sujet :) Et depuis que j'utilise Maven, je ne m'en soucie pas vraiment, non plus.


Merci les gars. Pour l'instant et que c'est due le fait que certaines personnes ici ont déjà travaillé avec Log4j, nous allons essayer avec elle. J'ai suggéré d'utiliser le logback mais vous savez comment les développeurs réticents doivent essayer de nouvelles choses lorsque le temps est épuisé. Cependant, il n'est pas encore complètement mis au rebut. Il suffit de tester les options pour l'instant



5
votes

Quel que soit le cadre de journalisation que vous utilisez dans votre propre code, autant que je me souvienne, le printemps a une dépendance difficile sur la journalisation des communes. Vous pouvez toujours utiliser ce que vous aimez pour votre propre journalisation (je recommanderais SLF4J comme façade, avec de la connexion comme votre implémentation), mais le printemps a besoin de la journalisation des communes de la communication. Que vous souhaitiez dépendre de plusieurs cadres, c'est votre choix; Cela ne devrait pas prouver problématique.


1 commentaires

Pour ce qu'il est clair: SLF4J est livré avec un adaptateur pour la journalisation des communes de la communication, de sorte que vous n'avez pas besoin du journal de la communication. Jarre dans votre projet. Voir slf4j.org/legacy.html



2
votes

Spring utilise la journalisation des communes de la communication, qui est une installation d'abstraction de log mais a des problèmes que SL4J n'a pas. Hibernate a déménagé à SLF4J - J'aimerais voir le printemps faire de même, mais je ne pense pas qu'ils ont des projets à cet égard.

SE Tant que votre installation d'abstraction de journal (utilisez SLF4J) se connecte au même cadre de journalisation que vous avez configuré la journalisation des communes de la communication au printemps, alors vous êtes bon. Une configuration de journal pour les deux. Vous pourriez trouver un adaptateur pour la connexion des Communes et SLF4J.


1 commentaires

La journalisation des communes de la communication est facile à moquer, SLF4J fournit donc une façade de la journalisation des communes qui repose sur le sommet de l'API habituel SLF4J. De cette façon, vous pouvez utiliser le ressort avec SLF4J (et votre logback).



1
votes

Étant donné que les autres réponses n'ont pas réellement répondu à votre question, je pensais avoir un coup de poignard.

Tout d'abord, java.util.logging est horrible. C'est une douleur à utiliser et une douleur à configurer. Log4J est plus agréable sur les deux chefs d'accusation. Cependant, vous devriez choisir celui que vous êtes le plus à l'aise. Le printemps utilise la journalisation des communes de la communication, qui utilisera à son tour soit log4j (si trouvé sur la classePath) ou Java.Util.logging autrement. Dans d'autres mots, si votre application dispose déjà de log4J, alors le ressort l'utilisera efficacement, et vous aussi. Si Log4J n'est pas déjà présent, alors utilisez Java.Util.logging (si vous choisissez de) ou ajoutez LOG4J à votre parcours de classe et utilisez-le.


1 commentaires

Merci Skaffman, pour l'instant, nous essayons avec log4j, Jul a vraiment l'air un peu délicat.