Maîtrisez la gestion des logs avec Jboss 5. Analysez la configuration de log4j par défaut. Mettez en oeuvre une stratégie de rotation des logs. Créez un fichier de log spécifique à chaque application.
Ce tutoriel est un extrait de séances pratiques de la formation Administration JBOSS5 dispensée par Objis.
Les + objis
70% de travaux pratiques
Clé USB avec tous les outils utilisés + Corrigés TPs
Bilan pédagogique individuel + conseils
Liens utiles
+ de 100 tutoriaux java/jee Objis
10 tutoriaux JBOSS 5
Objis, spécialiste formation java depuis 2005
Site de téléchargement serveur Jboss 5
Site de la communauté Jboss
Démonstration Log4j avec JBOSS 5 et JBOSS 7.1.1
Prérequis
Installation Kit de développement JDK 6
Tutoriel jboss N°1 : installation Jboss 5
Objectifs
Comprendre les fichiers de log : boot.log et server.log
Comprendre la configuration des logs par défaut : jboss-log4.xml
Mettre en œuvre stratégie rotation des logs (RollingFileAppender)
Créer un fichier de log (monapplication.log) pour une application war
Durée
40 min
Programme
Partie 1 : Service Log de Jboss
Partie 2 : Mise en oeuvre rotation logs
Partie 3 : Création d’un log par application
Partie 1 : Service Log de Jboss
Répertoire et fichiers de log
En utilisant la configuration par défaut du serveur d’applications, le répertoire de log est le répertoire serverdefaultlog.
Le fichier de log boot.log représente les logs du serveur avant que le service principal de log de Jboss soit effectif. Dès que ce service est effectif, les logs sont écrit dans le fichier server.log.
Fichiers de configuration de log
Le premier fichier à regarder pour la configuration de tout service dans jboss est le fichier JBOSS_HOMEconfjboss-service.xml. On remarque dans ce même répertoire conf la présence du fichier jboss-log4j.xml qui est le fichier de configuration du service.
Voici dans le fichier de déclaration des services jboss la section dédiée à la configuration du service de log :
On y précise le fichier jboss-log4j.xml que nous étudierons plus loin. On y fait référence également au fichier confxmdescLog4jService-xmbean.xml de description du service, implémenté historiquement sous forme de XMBean Jboss. Ce fichier précise attribut et opération du MBean Log4j permettant de monitorer Log4j avec la technologie JMX.
Focus fichier jboss-log4j.xml
Le premier endroit à regarder pour comprendre comment est configuré les logs de Jboss est la section root présente tout en bas du fichier jboss-log4j.xml
Comprenez : les logs de JBOSS seront écrits à 2 endroits : dans la console (CONSOLE) et dans un fichier (FILE). Dans la terminologie Log4j, les appanders répondent à la question : ou envoyer les logs ? De nombreux types d’appenders existent, dont HTMLAppenders sortie (logs sous forme de page HTML) et SMTMAppender (envoie des logs dans boîte mail via SMTP)
Configuration sortie CONSOLE (console)
Voici la configuration de la sortie console, dont l’Appender est de type ConsoleAppender.
REMARQUE : notez l’attribut ‘Target‘ qui fixe précisement la sortie console « System.out »
REMARQUE : notez l’attribut ‘TreshHold‘ imposant de ne laisser passer sur la console uniquement des logs de type INFO.
REMARQUE : notez enfin la forme du log (le PatternLayout) précisant d’écrire la date (%d), le nom de la classe (%c), et le message de log (%m).
Configuration sortie FILE (fichier)
Voici la configuration de la sortie fichier (server.log), dont l’appender est ici DailyRollingFileAppender. Ce qui implique qu’il y aura un fichier de log qui sera écrasé toutes les 24h. Pratique en phase de développement mais pas en production !
REMARQUE : notez le paramètre’File’ fixé à server.log par défaut
INFO : les propriétés type jboss.server.log.dir sont prédéfinies de façon interne Jboss au démarrage (classe org.jboss.system.server.ServerConfig). Une description est dispo ici et peuvent être surchargées lors du démarrage de Jboss (modif à faire dans JBOSS_HOMEconfrun.conf : java … -Djboss.server.log.dir=monrepertoire).
Partie 2 : Mise en œuvre rotation logs
Commentez la configuration de l’Appender File par défaut vue plus haut.
Décommentez la configuration d’un autre Appender ‘FILE’ placée juste en dessous (et initialemnt commentée)
Il s’agit d’un type de log rotatif. Idéal pour les logs en production.
Modifiez les paramètres de la façon suivante :
Ici nous configurons au maximum 5 fichiers de log de 10KB maximum chacun. Lorsque le cinquième est plein, un système de rotation permet de supprimer le log le plus ancien et d’en initialier un nouveau.
On évite ainqi d’avoir de trop lourd fichiers de logs.
Redémarrez Jboss avec cette configuration. Vous notez que notre nouvelle configuration est en action.
Redémarrez une nouvelle fois Jboss afin de constater la rotation des logs.
Partie 3 : Création d’un log par application
ETAPE 1 : Création Appender
Ici nous voulons que Jboss crée au démarrage un fichier qu’il alimentera par la suite uniquement avec les logs de notre application.
ETAPE 2 : Création un Logger spécifique
Notre application est caractérisée par des classes rangées dans package com.objis.demostruts. Nous allons demander à Log4j de diriger vers notre appender DEMOSTRUTS tous les logs provenant de classes présentents dans package com.objis et inférieurs.
ETAPE 3 : WAR sans config Log4j
Téléchargez l’application à déployer pour notre exemple. Il s’agit d’une version de l’application demostruts, sans la configuration de Log4j (pas de log4j.jar ni de log4j.xml). En effet c’est la configuration log4j de Jboss aui sera utilisée par la suite.
WAR sans config log4j avec classes utilisant log4j
L’application utilise log4j dans la classe HelloAction. En particuliers, l’application loggue le nom d’une personne entrée dans un champ texte.
INFO : notre tutoriel struts1 N°5 : gestion des logs avec log4j et AspectJ détaille la mise en oeuvre de log4j dans l’application.
ATTENTION : bien vérifier qu’il n’y a pas de config log4j dans le war.
Voilà ça y est vous avez configuré un log spécifique pour votre application. Reste à tester…
Démarrez à nouveau Jboss afin de tenir compte de notre nouvelle configuration.
Déployez l’application demostruts
vérifiez qu’un fichier de log vide monapplication.log a été créé dans le répertoire log.
Lancez l’application : http://localhost:8080/demostruts
Entrez un nom dans le champ texte
validez. Vous obtenez l’écran suivant
Entre temps l’application a loggué dans le fichier de l’appli…
Conclusion
Dans ce tutoriel vous avez analysé la stratégie de logs dde Jboss 5.
Vous avez mis en oeuvre des logs rotatifs et paramétré jboss afin d’avoir un fichier de log pour une des applications que vous avez déployé.
Prochaine formation JBOSS
Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur JBOSS :
Pour aller plus loin : le réseau Objis
Si vous appréciez notre sens du partage, devenez gratuitement membre ‘classic’ du Club Objis :
Votez pour les prochains tutoriaux à publier
Préparez vos entretiens techniques
Valorisez votre profil / expertise
Identifiez des opportunités d’emploi
Recevez la newsletter objis.com