1 / 21 Développement Java - Journalisation Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer L3 Pro Informatique 2010-2011
2 / 21 Plan Plan 1 Introduction 2 3 Bibliographie
3 / 21 Plan Objectifs Objectifs se familiariser avec la journalisation et notamment
4 / 21 Introduction Introduction Introduction
5 / 21 Introduction Rappel journalisation Journalisation (Logging) historique des événements qui affectent un système on utilise un journal (log file) pour enregistrer les opérations objectifs divers : sécurité intégrité des données, opérations performances
6 / 21 Introduction Rappel journalisation Journalisation (Logging) En plus des aspects sécurité, intégrité, performance : activer ou désactiver certains messages en fonction des besoins plusieurs canaux plusieurs niveaux d affichage plus pratique que println
7 / 21
8 / 21 log4j projet de la fondation Apache, différentes implémentations : log4j : Java log4cxx : C++ log4net :.Net log4php : PHP http://logging.apache.org/
9 / 21 log4j propose trois sortes de composants : Logger : canal pour l envoi d information Appender : traitement de l information Layout : mise en forme
10 / 21 le logger Logger permet de définir un identifiant pour l envoi d information création de ses propres Logger ou utilisation du logger par défaut : root Logger
11 / 21 Exemple Logger Logger 1 //Logging 2 import org.apache.log4j.*; 3 4 // use default logger 5 static Logger rootlogger = Logger.getRootLogger(); 6 7 // create your own logger with name 8 static Logger mylogger = Logger.getLogger("myLogger"); 9 10 // create your own logger with class name 11 static Logger myobjectlogger = Logger.getLogger(MyObject.class);
12 / 21 Niveaux d affichage du logger Niveaux d affichage on utilise la fonction setlevel() pour fixer le niveau d affichage DEBUG < INFO < WARN < ERROR < FATAL ALL OFF
13 / 21 Exemple setlevel Logger setlevel 1 static Logger rootlogger = Logger.getRootLogger(); 2 3 rootlogger.setlevel(level.debug); 4
14 / 21 Envoi d un message Envoi d un message on utilise les fonctions suivantes : debug(object message) info(object message) warn(object message) error(object message) fatal(object message)
15 / 21 log4j Appender Appender plusieurs possibilités de traitement (cf. documentation) ConsoleAppender : vers System.out ou System.err FileAppender : dans un fichier RollingFileAppender DailyRollingFileAppender SMTPAppender : envoi d un email SocketAppender...
16 / 21 log4j Layout Layout - mise en forme trois possibilités : SimpleLayout HTMLLayout PatternLayout : motif à définir http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/patternlayout.html
Utilisation de Utilisation définir un fichier de configuration log4j.properties le placer dans src sous Eclipse ou le copier dans le répertoire de build mettre log4j-1.2.15.jar dans le répertoire lib 17 / 21
18 / 21 Exemple 1 Configuration de base 1 log4j.rootlogger=debug, stdout 2 log4j.appender.stdout=org.apache.log4j.consoleappender 3 log4j.appender.stdout.target=system.out 4 log4j.appender.stdout.layout=org.apache.log4j.patternlayout 5 log4j.appender.stdout.layout.conversionpattern=%5p %c{1}:%l - %m%n
19 / 21 Exemple avec fichier Configuration avec fichier 1 # set appender to file 2 log4j.rootlogger=debug, file 3 log4j.appender.file=org.apache.log4j.fileappender 4 log4j.appender.file.file=file.log 5 log4j.appender.file.layout=org.apache.log4j.simplelayout
20 / 21 Bibliographie Bibliographie Bibliographie
21 / 21 Bibliographie Bibliographie, sitographie Pro Apache, Samudra Gupta, APress, 2005 http://logging.apache.org/log4j/1.2/manual.html