39 votes

Log4j 2.0 et SLF4J et l'avenir sans fin des cadres de journalisation java

Je viens d'apprendre aujourd'hui que Log4J 2.0 est en cours de développement, qu'il existe une version alpha et qu'il est censé remplacer logback.

Actuellement, dans mon application, j'ai près de 4 cadres d'enregistrement, voire plus :

  • Logging Java Util
  • log4j
  • slf4j
  • logback (ignoré grâce à un hack fourni par maven)
  • journalisation commons (ignorée grâce à un hack fourni par maven)
  • Et tomcat a son propre adaptateur JULI

J'ai utilisé log4j (1.2.x) parce que, franchement, je n'ai pas eu besoin de l'outil d'analyse de l'environnement. caractéristiques des nouveaux mais j'ai été tenté dernièrement de passer à SLF4J et principalement parce que je ne veux pas avoir à réécrire mes fichiers de configuration compliqués de log4j dans un nouveau format. (logback).

Maintenant, ma question est de savoir si SLF4J est le bon choix pour l'avenir compte tenu de log4j 2.0.

Il semble que je doive m'en tenir à l'ancien log4j ( 1.2.x ) car c'est le plus petit dénominateur commun ?

UPDATE : Après un examen plus approfondi de log4j 2.0, bien que très similaire, il semble que la configuration ne soit pas rétrocompatible avec log4j 1.2. Il semble que logback soit le meilleur choix.

34voto

Ceki Points 8781

Avis de non-responsabilité : Je suis le fondateur des projets log4j, slf4j et logback mais non affilié à log4j 2.0.

Si je comprends bien, malgré son nom, log4j 2.0 est très différent de log4j 1.x. En ce qui concerne l'API utilisateur, log4j 2.0 est largement incompatible avec log4j 1.x. Log4j 2.0 fournit une couche d'adaptation pour log4j 1.x qui, à l'heure actuelle (2012-08), est la suivante undocumented .

16voto

slim Points 12620

C'est une question subjective.

Je vous suggère d'utiliser slf4j, car il peut utiliser log4j comme backend si c'est ce dont vous avez besoin.

Vous utiliserez probablement un certain nombre de composants qui peuvent tous utiliser des API de journalisation différentes. Il est bon de pouvoir consolider la sortie via ces API en une seule route de sortie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X