SlideShare a Scribd company logo
1 of 11
Download to read offline
FRAMEWORK LOG4J
Cours pratique de 0.5 jour© 2017 - LOG4J - Mourad HASSINI - www.m104.io
PLAN DU COURS
2
– Introduction
– MISE EN OEUVRE
– LOG4J.XML
– INSTRUCTION JAVA
– LES NIVEAUX DE LOG
– LES APPENDERS
– LES LAYOUTS
– Place à la Pratique
© 2017 - LOG4J - Mourad HASSINI - www.m104.io
INTRODUCTION
3
• Log4j est une API de journalisation très répandue dans le monde
Java.
• la bibliothèque log4j met trois sortes de composants à
disposition du programmeur : les loggers, les appenders et les
layouts.
• Les premiers permettent d'écrire les messages, les deuxièmes
servent à sélectionner la destination des messages, et les
derniers à mettre en forme les messages.
© 2017 - LOG4J - Mourad HASSINI - www.m104.io
MISE EN OEUVRE
4
• Pour utiliser Log4j, il suffit d'ajouter le fichier log4j-1.2.17.jar dans
le pom.xml de notre application.
• Ensuite, Il faut créer un fichier log4j.xml dans
src/main/resources) : ce fichier contient la configuration de
Log4j pour l'application.
• Dans le code source des classes, il faut :
– Obtenir une instance du logger relative à la classe
– Utiliser l'API pour émettre un message associé à un niveau de
gravité
© 2017 - LOG4J - Mourad HASSINI - www.m104.io
LOG4J.XML
5
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC
"http://logging.apache.org/log4j/docs/api/org/apache/log4j/xml/log4j.dtd"
"http://logging.apache.org/log4j/docs/api/org/apache/log4j/xml/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-
MM-dd HH:mm:ss} %l:%L - %m%n" /> </layout>
</appender>
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" /> <param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="10" /> <param name="file" value="C:/logs/formation.log"
/>
<layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-
MM-dd HH:mm:ss} %l:%L - %m%n" /></layout>
</appender>
<root> <level value="DEBUG" /> <appender-ref ref="console" /> <appender-ref ref="file" /> </root>
</log4j:configuration>
© 2017 - LOG4J - Mourad HASSINI - www.m104.io
INSTRUCTION JAVA
6
package com.m2i.formation;
import org.apache.log4j.Logger;
public class HelloLog4J {
private static final Logger logger = Logger.getLogger(HelloLog4J.class);
public static void main(String a[]) {
if (logger.isTraceEnabled()) logger.trace("Test log TRACE");
if (logger.isDebugEnabled()) logger.debug("Test log DEBUG");
if (logger.isInfoEnabled()) logger.info("Test log INFO");
logger.warn("Test log WARN");
logger.error("Test log ERROR");
logger.fatal("Test log FATAL");
try {
if (logger.isInfoEnabled()) logger.info("Entrée dans Methode MAIN : ");
if (logger.isDebugEnabled()) logger.debug("Test log DEBUG");
if (logger.isInfoEnabled()) logger.info("Sortie de Methode MAIN : ");
} catch (Exception e) {
logger.error("Erreur dans la Methode : " + e);
}
}
}
© 2017 - LOG4J - Mourad HASSINI - www.m104.io
LES NIVEAUX DE LOG
7
• Log4j gère des priorités, ou Level, pour permettre au logger de déterminer si
le message sera envoyé dans le fichier de log (ou la console). Il existe six
priorités qui possèdent un ordre hiérarchique croissant :
TRACE, DEBUG, INFO, WARN, ERROR, FATAL
© 2017 - LOG4J - Mourad HASSINI - www.m104.io
LES APPENDERS
8
• L'interface org.apache.log4j.Appender désigne un flux qui représente le
fichier de log et se charge de l'envoie de message formaté à ce flux.
• Un logger peut posséder plusieurs appenders. Si le logger décide de traiter la
demande de message, le message est envoyés à chacun des appenders.
• Pour ajouter un appender à un logger, il suffit de le rajouter dans le fichier
configuration log4j.properties :
<root>
<level value="WARN" />
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
© 2017 - LOG4J - Mourad HASSINI - www.m104.io
LES LAYOUTS
9
• Ces composants représentés par la classe org.apache.log4j.Layout permettent
de définir le format du fichier de log. Un layout est associé à un appender lors de
son instanciation.
<layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %l:%L - %m%n" /> </layout>
Motif Role
%C le nom de la classe qui a émis le message
%d le timestamp de l'émission du message
%m le message
%n un retour chariot
%L
Le numéro de ligne dans le code émettant le message :
l'utilisation de ce motif est coûteuse en ressources
%l
Des informations sur l'origine du message dans le code
source (package, classe, méthode)
© 2017 - LOG4J - Mourad HASSINI - www.m104.io
PLACE A LA PRATIQUE
10
Développement d’un Projet qui implémente LOG4J
Ajout de LOG4J dans un Projet déjà existant
© 2017 - LOG4J - Mourad HASSINI - www.m104.io
SI DES QUESTIONS :
11© 2017 - LOG4J - Mourad HASSINI - www.m104.io

More Related Content

What's hot

Présentation de RMI Java
Présentation de RMI JavaPrésentation de RMI Java
Présentation de RMI Java
Zakaria Bouazza
 

What's hot (20)

Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
 
Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
 
Owasp top-10-2013-french
Owasp top-10-2013-frenchOwasp top-10-2013-french
Owasp top-10-2013-french
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
 
Social Engineering the Windows Kernel by James Forshaw
Social Engineering the Windows Kernel by James ForshawSocial Engineering the Windows Kernel by James Forshaw
Social Engineering the Windows Kernel by James Forshaw
 
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
 
Administration réseaux sous linux cours 1
Administration réseaux sous linux   cours 1Administration réseaux sous linux   cours 1
Administration réseaux sous linux cours 1
 
Présentation de RMI Java
Présentation de RMI JavaPrésentation de RMI Java
Présentation de RMI Java
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les bases
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
LVM "Linux "
LVM  "Linux "LVM  "Linux "
LVM "Linux "
 
Partie 9: Fonctions Membres — Programmation orientée objet en C++
Partie 9: Fonctions Membres — Programmation orientée objet en C++Partie 9: Fonctions Membres — Programmation orientée objet en C++
Partie 9: Fonctions Membres — Programmation orientée objet en C++
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 

Viewers also liked (7)

Shipping your logs to elk from mule app/cloudhub part 2
Shipping your logs to elk from mule app/cloudhub   part 2Shipping your logs to elk from mule app/cloudhub   part 2
Shipping your logs to elk from mule app/cloudhub part 2
 
Log4j Logging Mechanism
Log4j Logging MechanismLog4j Logging Mechanism
Log4j Logging Mechanism
 
My disabled film
My disabled filmMy disabled film
My disabled film
 
Shipping your logs to elk from mule app/cloudhub part 1
Shipping  your logs to elk from mule app/cloudhub   part 1Shipping  your logs to elk from mule app/cloudhub   part 1
Shipping your logs to elk from mule app/cloudhub part 1
 
Logging with log4j v1.2
Logging with log4j v1.2Logging with log4j v1.2
Logging with log4j v1.2
 
Exception handling and logging best practices
Exception handling and logging best practicesException handling and logging best practices
Exception handling and logging best practices
 
Exception handling & logging in Java - Best Practices (Updated)
Exception handling & logging in Java - Best Practices (Updated)Exception handling & logging in Java - Best Practices (Updated)
Exception handling & logging in Java - Best Practices (Updated)
 

Similar to LOG4J

Présentation prime facesfinal
Présentation prime facesfinalPrésentation prime facesfinal
Présentation prime facesfinal
Aymen Drira
 
À La découverte de flow3 - t3con12
À La découverte de flow3 -  t3con12À La découverte de flow3 -  t3con12
À La découverte de flow3 - t3con12
mguermazi
 

Similar to LOG4J (20)

Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
 
Lp web tp3_idse
Lp web tp3_idseLp web tp3_idse
Lp web tp3_idse
 
Journalisation_log4J.pptx
Journalisation_log4J.pptxJournalisation_log4J.pptx
Journalisation_log4J.pptx
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
 
Gestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerGestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzer
 
The Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingThe Spring of Adobe Flex Remoting
The Spring of Adobe Flex Remoting
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
iTunes Stats
iTunes StatsiTunes Stats
iTunes Stats
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web
 
cours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdfcours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdf
 
Joomla! Platform - Pourquoi l’API Joomla!
Joomla! Platform - Pourquoi l’API Joomla!Joomla! Platform - Pourquoi l’API Joomla!
Joomla! Platform - Pourquoi l’API Joomla!
 
J platform
J platformJ platform
J platform
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
 
Cours Php
Cours PhpCours Php
Cours Php
 
Cours Php
Cours PhpCours Php
Cours Php
 
Présentation prime facesfinal
Présentation prime facesfinalPrésentation prime facesfinal
Présentation prime facesfinal
 
À La découverte de flow3 - t3con12
À La découverte de flow3 -  t3con12À La découverte de flow3 -  t3con12
À La découverte de flow3 - t3con12
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Annotations pour les Geeks
Annotations pour les GeeksAnnotations pour les Geeks
Annotations pour les Geeks
 

LOG4J

  • 1. FRAMEWORK LOG4J Cours pratique de 0.5 jour© 2017 - LOG4J - Mourad HASSINI - www.m104.io
  • 2. PLAN DU COURS 2 – Introduction – MISE EN OEUVRE – LOG4J.XML – INSTRUCTION JAVA – LES NIVEAUX DE LOG – LES APPENDERS – LES LAYOUTS – Place à la Pratique © 2017 - LOG4J - Mourad HASSINI - www.m104.io
  • 3. INTRODUCTION 3 • Log4j est une API de journalisation très répandue dans le monde Java. • la bibliothèque log4j met trois sortes de composants à disposition du programmeur : les loggers, les appenders et les layouts. • Les premiers permettent d'écrire les messages, les deuxièmes servent à sélectionner la destination des messages, et les derniers à mettre en forme les messages. © 2017 - LOG4J - Mourad HASSINI - www.m104.io
  • 4. MISE EN OEUVRE 4 • Pour utiliser Log4j, il suffit d'ajouter le fichier log4j-1.2.17.jar dans le pom.xml de notre application. • Ensuite, Il faut créer un fichier log4j.xml dans src/main/resources) : ce fichier contient la configuration de Log4j pour l'application. • Dans le code source des classes, il faut : – Obtenir une instance du logger relative à la classe – Utiliser l'API pour émettre un message associé à un niveau de gravité © 2017 - LOG4J - Mourad HASSINI - www.m104.io
  • 5. LOG4J.XML 5 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PUBLIC "http://logging.apache.org/log4j/docs/api/org/apache/log4j/xml/log4j.dtd" "http://logging.apache.org/log4j/docs/api/org/apache/log4j/xml/log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy- MM-dd HH:mm:ss} %l:%L - %m%n" /> </layout> </appender> <appender name="file" class="org.apache.log4j.RollingFileAppender"> <param name="append" value="false" /> <param name="maxFileSize" value="10MB" /> <param name="maxBackupIndex" value="10" /> <param name="file" value="C:/logs/formation.log" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy- MM-dd HH:mm:ss} %l:%L - %m%n" /></layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> </log4j:configuration> © 2017 - LOG4J - Mourad HASSINI - www.m104.io
  • 6. INSTRUCTION JAVA 6 package com.m2i.formation; import org.apache.log4j.Logger; public class HelloLog4J { private static final Logger logger = Logger.getLogger(HelloLog4J.class); public static void main(String a[]) { if (logger.isTraceEnabled()) logger.trace("Test log TRACE"); if (logger.isDebugEnabled()) logger.debug("Test log DEBUG"); if (logger.isInfoEnabled()) logger.info("Test log INFO"); logger.warn("Test log WARN"); logger.error("Test log ERROR"); logger.fatal("Test log FATAL"); try { if (logger.isInfoEnabled()) logger.info("Entrée dans Methode MAIN : "); if (logger.isDebugEnabled()) logger.debug("Test log DEBUG"); if (logger.isInfoEnabled()) logger.info("Sortie de Methode MAIN : "); } catch (Exception e) { logger.error("Erreur dans la Methode : " + e); } } } © 2017 - LOG4J - Mourad HASSINI - www.m104.io
  • 7. LES NIVEAUX DE LOG 7 • Log4j gère des priorités, ou Level, pour permettre au logger de déterminer si le message sera envoyé dans le fichier de log (ou la console). Il existe six priorités qui possèdent un ordre hiérarchique croissant : TRACE, DEBUG, INFO, WARN, ERROR, FATAL © 2017 - LOG4J - Mourad HASSINI - www.m104.io
  • 8. LES APPENDERS 8 • L'interface org.apache.log4j.Appender désigne un flux qui représente le fichier de log et se charge de l'envoie de message formaté à ce flux. • Un logger peut posséder plusieurs appenders. Si le logger décide de traiter la demande de message, le message est envoyés à chacun des appenders. • Pour ajouter un appender à un logger, il suffit de le rajouter dans le fichier configuration log4j.properties : <root> <level value="WARN" /> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> © 2017 - LOG4J - Mourad HASSINI - www.m104.io
  • 9. LES LAYOUTS 9 • Ces composants représentés par la classe org.apache.log4j.Layout permettent de définir le format du fichier de log. Un layout est associé à un appender lors de son instanciation. <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %l:%L - %m%n" /> </layout> Motif Role %C le nom de la classe qui a émis le message %d le timestamp de l'émission du message %m le message %n un retour chariot %L Le numéro de ligne dans le code émettant le message : l'utilisation de ce motif est coûteuse en ressources %l Des informations sur l'origine du message dans le code source (package, classe, méthode) © 2017 - LOG4J - Mourad HASSINI - www.m104.io
  • 10. PLACE A LA PRATIQUE 10 Développement d’un Projet qui implémente LOG4J Ajout de LOG4J dans un Projet déjà existant © 2017 - LOG4J - Mourad HASSINI - www.m104.io
  • 11. SI DES QUESTIONS : 11© 2017 - LOG4J - Mourad HASSINI - www.m104.io