vers l'accueil formulaire de contact

Tutoriel administration jboss N°5 : gestion logs jboss 5

Votre formation JBOSS avec Objis, spécialiste formation java depuis 2005

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

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 : log4j-service.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 server\default\log.

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_HOME\conf\jboss-service.xml. On remarque dans ce même répertoire conf la présence du fichier log4j-service.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 log4j-service.xml que nous étudierons plus loin. On y fait référence également au fichier conf\xmdesc\Log4jService-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 log4j-service.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 log4j-service.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_HOME\conf\run.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.

Zip - 1.5 Mo
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 :

Votre formation JBOSS avec Objis, spécialiste formation java depuis 2005

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