Mardi gras sur “10 bonnes raisons pour migrer vers Logback”, par Ceki Gülcü
Le projet Apache Log4j est depuis une dizaine d’années la référence des librairies Java de journalisation (”logging” pour les anglophones). Son fondateur, Ceki Gülcü, nous fera l’honneur de présenter dans le cadre des mardi gras 10 bonnes raisons pour migrer vers Logback, le successeur de Log4j. Il sera question de la stratégie de migration et des nouveaux APIs tels que SLF4J et Joran. L’accent sera mis sur les aspects pratiques accompagnés de démos plutôt que sur des aspects théoriques relativement abstraits.
La présentation aura lieu le mardi 5 décembre de 18h à 19h, à l’auditorium du Geneva Business Center de Petit-Lancy. Pour ne pas changer les bonnes habitudes, l’entrée est libre et gratuite. Il suffit de s’inscrire par mail à be.agile@hortis.ch, par téléphone au +41 22 860 84 60 ou par ajout de commentaire à cet article.
Pour ceux qui ne pourront pas assister à cette présentation, en voici un résumé :
- Logback, c’est log4j mais en mieux
- Logback s’utilise à travers l’API SLF4J, donc il est possible de changer de système de logging à volonté.
- Logback s’articule autour de Joran, un API de configuration générique, puissant et extrêmement flexible.
- Robustesse: logback utilise un système de rapport d’erreurs internes générique, extrêmement simple et robuste.
- Documentation: toute la doc log4j est graduellement migrée à logback, et disponible gratuitement.
- Filtrage: logback offre un API de filtrage et d’évaluation d’événements très rapide et facile d’utilisation.
- Markers: il est possible de colorier des événements pour un traitement ultérieur hautement spécialisé.
- Access logging: le module logback-access s’intègre bien avec l’access logging de Jetty et Tomcat.
- JMX: logback permet la configuration de ses composants par une interface JMX.
- Ca marche: logback est prêt à l’utilisation, aujourd’hui.

+1
+1
+1
+1
+1
Je peux pas venir, mais j’ai une question: Quels sont les problèmes avec Log4J qui font qu’il est moins bon que LogBack et qu’il ne puisse pas être amélioré?
A mon avis seul Ceki peut répondre correctement à ces questions ;o) Il faut donc patienter un peu. On mettra à disposition les slides de la présentation pour les absents.
Je tente quand même un semblant d’explication : les développeurs log4j exigent systématiquement une rétro-compatibilité des versions. Hors Ceki estimait qu’il ne pouvait plus avancer avec cette contrainte pour développer la version 1.3. Il se trouve que la license Apache considère que le code appartient à la fondation mais aussi aux développeurs. Ceki étant le principal contributeur, il a pu “forker” log4j 1.2 et ainsi implémenter en toute liberté ces mystèrieures évolutions. A noter au passage que logback n’est plus chez Apache et est sous license GNU LGPL.
Suite au prochain épisode !
+1
1.+
Simon Simon a parfaitement répondu à la question. En effet, il devenait difficile d’obtenir un consensus autour même de questions mineurs, sans parler de changements significatifs. Cela dit, le mode de développement Apache reste toujours la référence dans le genre.
Pour revenir à la question de Stéphane, logback ressemble beaucoup à log4j, mais avec des améliorations en plus. Je vais tâcher de détailler ces améliorations pendant la présentation.
new Integer(1)==new Integer(1)?0:1
= +1
310-055… Désolé !
+1
+1
+1
+1
+1
+1
+2
-1
+1
duplicate detector, shup up!
-1
En considérant 17 inscrits via ce blog a ce jour, lancer l’irb et ecrire :
irb(main)>class Counter
irb(main)> def initialize (initialValue)
irb(main)> @value = initialValue
irb(main)> end
irb(main)> def value
irb(main)> @value
irb(main)> end
irb(main)> def reset
irb(main)> @value = 0
irb(main)> end
irb(main)> def increment
irb(main)> @value = @value + 1
irb(main)> end
irb(main)> def decrement
irb(main)> @value = @value - 1
irb(main)> end
irb(main)>end
Puis :
irb(main)>a = Counter.new(17)
irb(main)>a.decrement
=> 16
irb(main)>
+1