Sie sind auf Seite 1von 21

Gestion des traces dans les

applications Web J2EE


Le FrameWork Log4j
OULD CHEIKHNA Aboubecrine

aboubecrine@gmail.com

ISCAE
L3

Architecture J2EE

Serveur Web : Tomcat


Client
Lger
o
o
o
o
o
o

HTML
CSS
Java Script
XML
Ajax
Flash

Couche Web
1

HTTP
6

Client
Lourd
o AWT
o SWING
o SWT
Java/J2EE
Aboubecrine

Controleur
Servlet
4
Vue
JSP

Couche
Mtier

Couche
DAO

Mtier

DAO

2
3

Modle

JSF
Struts
Spring

Couche
Service

BD

Hiber
nate
JDBC

SGBD

Intgration avec Spring ou EJB


RMI/EJB/CORBA/SOAP/REST

OULD CHEIKHNA

ISCAE
L3

Le Framework Java Log4j

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

Le framework java Log4j


Les bonnes pratiques de dveloppement dconseillent
lutilisation des mthodes System.out.print* et System.err.print*
pour afficher des messages et recommandent plutt lutilisation
dun logger tel Log4J apportant plus de souplesse;

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

Le framework java Log4j


Les bonnes pratiques de dveloppement dconseillent
lutilisation des mthodes System.out.print* et System.err.print*
pour afficher des messages et recommandent plutt lutilisation
dun Logger tel Log4J apportant plus de souplesse.
Log4J simplifie les gestions des logs et le dbogage des
applications Java en fournissant des classes et des mthodes
pour lenregistrement de ces informations;

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

LE framework java Log4j


Les bonnes pratiques de dveloppement dconseillent
lutilisation des mthodes System.out.print* et System.err.print*
pour afficher des messages et recommandent plutt lutilisation
dun Logger tel Log4J apportant plus de souplesse;
Log4J simplifie les gestions des logs et le dbogage des
applications Java en fournissant des classes et des mthodes
pour lenregistrement de ces informations;
Les fichiers journaux dune application reprsentent la mmoire
dune application, un historique permanent de la vie de celle-ci,
il est donc important de correctement enregistrer ces
messages;

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

Le framework java Log4j


Les bonnes pratiques de dveloppement dconseillent
lutilisation des mthodes System.out.print* et System.err.print*
pour afficher des messages et recommandent plutt lutilisation
dun Logger tel Log4J apportant plus de souplesse.
Log4J simplifie les gestions des logs et le dbogage des
applications Java en fournissant des classes et des mthodes
pour lenregistrement de ces informations.
Les fichiers journaux dune application reprsentent la mmoire
dune application, un historique permanent de la vie de celle-ci,
il est donc important de correctement enregistrer ces
messages.
Le dveloppeur prfrera denvoyer le message quil souhaite
afficher ou enregistrer au Logger en lui assignant un certain
Java/J2EE
OULD CHEIKHNA
niveau
de
criticit
(DEBUG,
INFO,
WARNING,
ERROR,
CRITICAL).
Aboubecrine

ISCAE
L3

Le framework java Log4j


On indiquera aussi la classe/la mthode a lorigine de ce
message, la ligne dans le code source, ou toute autre
information utile;

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

Le framework java Log4j


On indiquera aussi la classe/la mthode a lorigine de ce
message, la ligne dans le code source, ou toute autre
information utile.
On peut facilement demander a une application dafficher tous
les messages de niveau DEBUG et suprieur a lcran lors de la
phase de dveloppement;

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

10

Le framework java Log4j


On indiquera aussi la classe/la mthode a lorigine de ce
message, la ligne dans le code source, ou toute autre
information utile.;
On peut facilement demander a une application dafficher tous
les messages de niveau DEBUG et suprieur a lcran lors de la
phase de dveloppement;
Puis on peut lui demander den afficher que les messages de
niveau WARNING et suprieur dans un fichier de log en phase
de production;

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

11

Le framework java Log4j


On indiquera aussi la classe/la mthode a lorigine de ce
message, la ligne dans le code source, ou toute autre
information utile.
On peut facilement demander a une application dafficher tous
les messages de niveau DEBUG et suprieur a lcran lors de la
phase de dveloppement.
Puis on peut lui demander den afficher que les messages de
niveau WARNING et suprieur dans un fichier de log en phase
de production.
Ces diffrents types daffichage des messages peuvent tre
configurs facilement au runtime de log4j par fichier XML ou par
fichier de proprits, donc de faon totalement externe au code.
Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

12

Le framework java Log4j


Log4J est constitu de 3 composants principaux qui permettent
de configurer le dispositif de journalisation :
Les Loggers pour crire les messages,
Les Appenders pour slectionner la destination des
messages
Les Layouts pour la mise en forme des messages.

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

13

Le framework java Log4j


Log4J est constitu de 3 composants principaux qui permettent
de configurer le dispositif de journalisation :
Les Loggers pour crire les messages,
Les Appenders pour slectionner la destination des
messages
Les Layouts pour la mise en forme des messages.
Log4J permet donc non seulement de gagner en flexibilit sur
la gestion des messages dune application mais galement de
faciliter la recherche et la dtection derreurs.

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

14

Le framework java Log4j: le niveau de journalisation


La notion de niveau de journalisation ou de priorit dun
message reprsente limportance du message a journaliser.
Elle est reprsente par la classeorg.apache.log4j.Level.
Un message nest journalis que si sa priorit est suprieure ou
gale a la priorit du Logger effectuant la journalisation.

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

15

Le framework java Log4j


LAPI Log4j dfinit 5 niveaux de logging prsents ici par
gravit dcroissante :
o FATAL : journaliser une erreur grave pouvant mener a larrt
prmatur de lapplication;

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

16

Le framework java Log4j


LAPI Log4j dfinit 5 niveaux de logging prsents ici par
gravit dcroissante :
o FATAL : journaliser une erreur grave pouvant mener a larrt
prmatur de lapplication.
o ERROR : journaliser une erreur qui nempche cependant pas
lapplication de fonctionner;

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

17

Le framework java Log4j


LAPI Log4j dfinit 5 niveaux de logging prsents ici par
gravit dcroissante :
o FATAL : journaliser une erreur grave pouvant mener a larrt
prmatur de lapplication.
o ERROR : journaliser une erreur qui nempche cependant pas
lapplication de fonctionner.
o WARN : journaliser un avertissement, il peut sagir par
exemple dune incohrence dans la configuration.
o INFO : journaliser des messages a caractre informatif;

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

18

Le framework java Log4j


LAPI Log4j dfinit 5 niveaux de logging prsents ici par
gravit dcroissante :
o FATAL : journaliser une erreur grave pouvant mener a larrt
prmatur de lapplication;
o ERROR : journaliser une erreur qui nempche cependant pas
lapplication de fonctionner;
o WARN : journaliser un avertissement, il peut sagir par
exemple dune incohrence dans la configuration;
o INFO : journaliser des messages a caractre informatif;
o DEBUG : gnrer des messages pouvant tre utiles au
dbogage.

Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

19

Le framework java Log4j : La classe Logger


Le Logger est lentit de base pour effectuer la journalisation, il
est mis en uvre par le biais de la classe
org.apache.log4j.Logger.
Lobtention dune instance de Logger se fait en appelant la
mthode statique Logger.getLogger :
import org.apache.log4j.Logger;
public class MaClasse {
private static final Logger logger =
Logger.getLogger(MaClass.class);
// suite
}
Il est possible de donner un nom arbitraire au Logger.
Cependant, il est prfrable dutiliser le nom de la classe pour
Java/J2EE
OULD CHEIKHNA
des
raisons
de
facilit.
Aboubecrine

ISCAE
L3

20

Le framework java Log4j


Pour les niveaux de base, des mthodes de raccourcis sont
fournies, elle portent le nom du niveau :
try {
// quivaut a logger.info("Message dinformation");
logger.log(Level.INFO, "Message dinformation");
// Code pouvant soulever une Exception
//...
} catch(UneException e) {
// quivaut a logger.log(Level.FATAL, "Une exception est
survenue", e);
logger.fatal("Une exception est survenue", e); }
Java/J2EE
Aboubecrine

OULD CHEIKHNA

ISCAE
L3

21

Java/J2EE
Aboubecrine

OULD CHEIKHNA