Le Touilleur Express

  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express
Next Previous

Adieu System.out.println, vive Log4J

22 décembre, 2003

Je vais faire de la pub pour Log4J, une API Java développée par le groupe Apache. Log4J permet d’ajouter facilement à une application Java la possibilité de loguer des messages d’info, de debug, d’erreur etc. Les messages peuvent être affichés directement sur la console, enregistré dans un fichier, envoyé à un serveur distant via Socket, ajouté aux syslogs unix ou au journal des évenements de Windows. Bref vraiment tres puissant. Le formatage des messages est facilement configurable, il est possible d’activer/désactiver l’affichage d’une trace en temps réel, de faire tourner les fichiers de logs lorsqu’ils sont pleins… .

Les 3 concepts à retenir de log4j: logger, appender et layout: un logger logue un message vers un ‘appender’ en utilisant un ‘layout’.Le site d’Apache Log4JExemple avec un fichier de configuration XMLVoici un exemple d’une class Java utilisant un logger, dont la configuration est externe au programm et est effectuée dans un fichier XML:

/* TestLog4JXML * Created by : nicmarti * Date: 27-Nov-2003 - Time: 12:40:50 * Copyright(c) 2003 Nicolas Martignole. */package com.test.nicmarti; import org.apache.log4j.Logger;import org.apache.log4j.xml.DOMConfigurator;/** TestLog4JXML est un exemple simple qui affiche des messages * de logs et dont la configuration est effectuée via * un fichier XML externe. A l'execution ce fichier doit etre * dans le classpath. * @version 27-Nov-2003 12:40:50 * @author Nicolas Martignole */public class TestLog4JXML {    static Logger log= Logger.getLogger(TestLog4JXML.class);public static void main(String args[]) {        // Fichier de conf        DOMConfigurator.configure("log4j.xml");// Passe 1        log.info("Info message 1");        log.debug("Debug message 1");        log.warn("Warn message 1");        log.error("Error message");        log.fatal("Fatal message");log.info("<<>>");        log.info("Note: if a telnetappender is started you can connect now");        try {            while(System.in.read()==-1){            }        } catch (IOException e) {            e.printStackTrace();        }        // Message envoyes sur la console et telnetadapter        log.info("Info message step 2");        log.debug("Debug message step 2");        log.warn("Warn message step 1");        log.error("Error message step 2");        log.fatal("Fatal message step 2");log.info("<<>>");        try {            while (System.in.read() == -1) {            }        } catch (IOException e) {            e.printStackTrace();        }// Unplug everything        log.removeAllAppenders();// Close all sockets        LogManager.shutdown();    }}

Voici le fichier de configuration log4j.xml que j’ai défini:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><!-- ===================================================================//--><!--  Exemple simple de fichier de configuration XML pour Log4J         //--><!-- ===================================================================//--><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">    <!-- Un appender similaire a la console System.out //-->    <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">        <layout class="org.apache.log4j.SimpleLayout"/>    </appender> <!-- Un appender qui affiche un message formate dans la console -->    <appender name="MyAppender" class="org.apache.log4j.ConsoleAppender">        <layout class="org.apache.log4j.PatternLayout">            <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>        </layout>    </appender><!-- Appender qui demarre un serveur Telnet sur le port 8123 et envoie sur -->    <!-- la socket les messages de logs. Faire un 'telnet localhost 8123' pour voir -->    <!-- les messages a distance. Note: si l'application se referme alors pas de message -->    <!-- Note 2: il est possible aussi d'utiliser un navigateur web meme -->    <!-- si les headers HTTP ne sont pas generes. Ouvrir http://localhost:8123 -->    <appender name="TelnetTest" class="org.apache.log4j.net.TelnetAppender">        <param name="port" value="8123"/>        <layout class="org.apache.log4j.HTMLLayout">            <param name="title" value="Titre de ma page HTML"/>        </layout>    </appender><!-- Configuration -->    <root>        <priority value="debug"/>        <appender-ref ref="ConsoleAppender"/>        <appender-ref ref="MyAppender"/>        <appender-ref ref="TelnetTest"/>    </root></log4j:configuration>

En conclusion, nous voyons que Log4J est très pratique pour mettre en place rapidementet proprement une gestion des logs dans une application.Voili voilà.

0 no like

Articles similaires:

Default ThumbnailLog4J and ANSI colors in a xterm Default ThumbnailEnvoyer des messages vers Twitter avec Log4J Default ThumbnailByteArrayOutputStream: vive les buffers de taille variable Default ThumbnailLog4J et log4j.xml

Derniers articles

  • L’instant T où tu poses ta dém…

    Retour d’expérience sur la démission et le moment où vous devez quitter une entreprise.

    6 likes

    24 octobre, 2024
  • The « Robinson » projection – comprendre son système d’information

    Nous sommes en juillet 2022 chez Doctolib. Je travaille sur un projet

    5 likes

    22 octobre, 2024
  • Réussir son démarrage comme Staff/Principal Engineer dans une nouvelle entreprise

    Je prépare une présentation avec mon collègue Théotime pour la conférence Cloud

    3 likes

    6 octobre, 2024

Mots clés

Apple (32) Architecture (14) Big Data (5) Conference (8) Devoxx (55) Dev Web (37) Doctolib (2) geekevent (1) groovy (2) Innoteria (11) Java (517) Linux (10) Non classé (15) Perso (266) Recrutement (2) Scala (30) scrum (43) Société (3) Staff Engineer (5) Startup (21) Web 2.0 (67)

Le Touilleur Express

Blog par Nicolas Martignole

Contactez-moi : nicolas@touilleur-express.fr

Suivez-moi sur X (Twitter) : @nmartignole

Copyright© 2008 - 2024 Nicolas Martignole | Tous droits réservés
  • A propos de l’auteur
  • A propos du Touilleur Express
  • Reset Password

Le Touilleur Express