IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Logging Java Discussion :

[java.util.logging.Logger] niveau de loggage


Sujet :

Logging Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 102
    Points : 58
    Points
    58
    Par défaut [java.util.logging.Logger] niveau de loggage
    J'utilise la classe du JDK java.util.logging.Logger mais elle n'est pas trop docile.
    C'est peut être pour ça que tout le monde semble utiliser log4j!?

    comment fait-t-on pour régler le niveau de log à finest? (peu importe comment)

    et sinon comment fait-on pour au moins définir le niveau à Warning avec un fichier logging.properties externe (pas celui par défaut dans la jre, svp)

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    log.setLevel(Level.WARNING);
     
    System.out.println(log.getLevel());
     
    		log.severe("severe");
    		log.warning("warning");
    		log.info("info");
    		log.fine("fine");
    		log.finer("finer");
    		log.finest("finest");
    le resultat sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    WARNING
    11 oct. 2007 13:24:46 com.xxx.TestLog main
    GRAVE: severe
    11 oct. 2007 13:24:46 com.xxx.TestLog main
    ATTENTION: warning

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    mais si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    log.setLevel(Level.FINEST);
     
    		System.out.println(log.getLevel());
     
    		log.severe("severe");
    		log.warning("warning");
    		log.info("info");
    		log.fine("fine");
    		log.finer("finer");
    		log.finest("finest");
    j'obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    FINEST
    11 oct. 2007 13:26:15 com.xxx.TestLog main
    GRAVE: severe
    11 oct. 2007 13:26:15 com.xxx.TestLog main
    ATTENTION: warning
    11 oct. 2007 13:26:15 com.xxx.TestLog main
    INFO: info
    et les niveau fine ???

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    j'ai trouvé... c'est sur le fichier logging.properties dans jre/lib

    il faut régler le niveau du ConsoleHandler

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Points : 327
    Points
    327
    Par défaut
    Merci d'avoir fournit la réponse pour les autres

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Points : 120
    Points
    120
    Par défaut
    En fait, de manière plus large, faut définir ton Level au niveau du handler...
    Juste un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
     
            logger = Logger.getLogger("CAFE");
            //ici tu défini a partir de quel niveau tu souhaite logger
            logger.setLevel(Level.FINEST);
            //petite méthode pour virer les handler par défaut de l'API logging
            logger.setUseParentHandlers(false);
     
     
            Handler fh = null;
            try {
     
                //Je crée ici un handler qui log tout ce qui a un level à partir du level INFO
                fh = new FileHandler("./cafe_log/CAFE.log",false);
                fh.setLevel(Level.INFO);
                fh.setFormatter(new XMLFormatter());
                logger.addHandler(fh);
     
     
                //Ici un handler qui log qu'a partir du Level WARNING
     
                Handler fhw = new FileHandler("./cafe_log/CAFE_warning.log",false);
                fhw.setLevel(Level.WARNING);
                fhw.setFormatter(new SimpleFormatter());
                logger.addHandler(fhw); 
     
                //Pour l'affichage dans la console j'utilise un handler maison
     
                mh = new MyHandler();
                logger.addHandler(mh);
     
    avec :
     
    public class MyHandler  extends StreamHandler {
     
     
        /**
         * Constructeur par défaut
         */
        public MyHandler() {
            super();
            this.dl=dl;
        }
        /**
         * Surcharge de la méthode de publication du flux vers sa sortie
         */
        public void publish(LogRecord record) {
            super.publish(record);	
            //Ici le Level a partir duquel je souhaite afficher dans ma console
            if(record.getLevel().intValue()>=MyLevel.WARNING.intValue()){
                System.out.println(record.getMessage());
            }
            flush();
        }
        /**
         * Fermeture du Handler
         */
        public void close() {
            flush();
        }
    }

Discussions similaires

  1. Réponses: 12
    Dernier message: 02/12/2010, 09h22
  2. Question concernant le java.util.logging
    Par vdumont dans le forum Logging
    Réponses: 4
    Dernier message: 31/01/2008, 19h07
  3. [java.util.logging]Faire une pause dans le logging
    Par anthyme dans le forum Logging
    Réponses: 6
    Dernier message: 08/03/2006, 10h43
  4. [LOG4J][API java.util.logging.*] Differences
    Par Righetto Dominique dans le forum Logging
    Réponses: 2
    Dernier message: 22/11/2004, 15h12
  5. [java.util.logging] trop d'info parasite....
    Par zolive dans le forum Logging
    Réponses: 2
    Dernier message: 25/05/2004, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo