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 :

[Log4J] enum Singleton


Sujet :

Logging Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Points : 56
    Points
    56
    Par défaut [Log4J] enum Singleton
    Bonjour à tous,

    J'ai l'occasion de retravailler sur un projet en Java, après une "abstinence" de près de 3 ans. Après avoir rencontré différents petits problèmes que j'ai pu résoudre par moi-même, je fais maintenant face à un souci que mes recherches sur Google ne m'ont pas aidé à résoudre.

    J'ai implémenté un singleton en utilisant une nouvelle possibilité offerte depuis Java 6 (cfr. http://www.vogella.com/articles/Desi...n/article.html) et essaie de faire du logging dans ce singleton en utilisant log4j. Cela donne quelque chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package mypackage;
     
    public enum MyEnumSingleton {
      INSTANCE;
      private final static Logger LOG = Log.getLogger(MyEnumSingleton.class)
     
      public doSomething() {
        LOG.debug("->doSomething()");
        //do something
        LOG.debug("<-doSomething()");
      }
    }
    Le problème est que dans la méthode doSomething(), LOG est toujours égal à null et donc badaboum! Je peux concevoir qu'une class n'est pas tout à fait la même chose qu'une enum mais ne suis pas suffisamment expert pour en cerner toutes les subtiles différences. Cela doit sans doute poser un problème à Log4j?

    Demain je ferai un test en définissant dans mon singleton une autre variable static pour voir si son initialisation se passe correctement ou pas (j'imagine que oui). Cela permettra de cibler davantage le problème. Je compte également utiliser intensivement le debugger.

    Avez-vous déjà rencontré ce problème? Comment l'avez-vous solutionné?

    D'avance, merci pour vos lumières.

    Brolon

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Points : 56
    Points
    56
    Par défaut
    Bonjour à tous,

    en faisant quelques essais ce matin je suis arrivé à faire fonctionner le logging dans mon singleton. Pour ce faire, j'ai retiré le mot clé "static" devant sa déclaration.

    Le déclarer en static est en effet redondant avec l'implémentation en singleton et donc inutile. Même sans le déclarer en static on n'aura toujours qu'une seule instance du LOG pour cet enum en mémoire.

    Maintenant, si quelqu'un peut m'expliquer pourquoi quand la variable est déclarée en static elle n'est pas correctement initialisée, cela m'intéresse fortement.

    Aussi, pour info j'ai fait le test en déclarant une private final static list. Elle non plus n'était pas correctement initialisée. Il s'agit donc d'un "problème" plus général et non pas lié uniquement à LOG4J

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Log4j]Cherche visualiseur de fichiers logs de log4j
    Par RolandB dans le forum Logging
    Réponses: 9
    Dernier message: 18/03/2009, 15h11
  2. [enum] Ecrire un singleton en Java 5.0+
    Par palnap dans le forum Langage
    Réponses: 16
    Dernier message: 28/02/2008, 18h52
  3. Mutiple row in singleton select ????? [Important, merci]
    Par SkyDev dans le forum Bases de données
    Réponses: 6
    Dernier message: 20/04/2004, 14h02
  4. [debutant]Singleton
    Par bafman dans le forum Langage SQL
    Réponses: 6
    Dernier message: 13/01/2004, 15h41
  5. [TABLE][ENUM] u champs à choix multiple ?
    Par narmataru dans le forum SQL
    Réponses: 2
    Dernier message: 04/11/2003, 10h25

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