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

Java Discussion :

Logger.debug : utiliser le isXEnable ?


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Par défaut Logger.debug : utiliser le isXEnable ?
    Hello,

    J'utilise le log4j Logger pour marquer des informations dans mes applications Java.

    Je me demandais pourquoi on utilise le isXXXEnable...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (logger.isDebugEnabled()) {
       logger.debug("message");
    }
    Pourquoi le Logger ne le fait pas directement dans logger.debug ?

    Merci

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par dranakan Voir le message
    Pourquoi le Logger ne le fait pas directement dans logger.debug ?
    Le logger vérifie également le niveau de debug.
    En fait cela permet d'éviter la création d'objet temporaire inutile, ainsi que le formatage des données.

    Par exemple avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int intValue = ...;
    double doubleValue = ...;
     
     
    if (logger.isDebugEnabled()) {
       logger.debug("Integer : " + intValue + " / Double : " + doubleValue);
    }
    La chaine du message est généré avant l'appel de la méthode.

    Le fait de vérifier isDebugEnabled() avant d'appeler la méthode permet d'éviter de créer des objets inutilement puisque ils ne seront pas affiché


    a++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Par défaut
    Merci bien...

    c'est donc pour des raisons de performance/utilisation mémoire que l'on peut (pas obligé) faire un logger.isDebugEnabled().

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Oui, et dans l'exemple (simpliste, il est vrai,) que tu as donné, il est inutile de le faire, puisqu'aucun objet n'est construit.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 14
    Dernier message: 03/10/2013, 11h42
  2. logger et utilisation de deux fichiers de log
    Par Lolitaaa dans le forum Logging
    Réponses: 1
    Dernier message: 30/06/2010, 22h48
  3. Réponses: 1
    Dernier message: 17/10/2006, 11h04
  4. [Perf]Utilisation des Logger et temps de traitement ?
    Par elitost dans le forum Logging
    Réponses: 6
    Dernier message: 12/04/2005, 23h13
  5. Réponses: 3
    Dernier message: 07/12/2004, 22h09

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