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

avec Java Discussion :

Erreur lors de l'initialisation d'un logger


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Points
    63
    Par défaut Erreur lors de l'initialisation d'un logger
    Bonjour,

    N'ayant pas fait de java depuis un moment et commençant un nouveau projet je rencontre quelques difficultés avec les loggers.

    Je me suis inspiré du tutoriel suivant : http://gfx.developpez.com/tutoriel/java/log4j


    - 1er problème :

    Je souhaite tester les loggers, donc je créé une classe main commençant de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import org.apache.log4j.ConsoleAppender;
    import org.apache.log4j.Logger; 
    import org.apache.log4j.PatternLayout;
     
    public class main {
     
    	Logger log = Logger.getLogger("myLogger");
    	PatternLayout layout = new PatternLayout("%d %-5p %c - %F:%L - %m%n");
    	ConsoleAppender stdout = new ConsoleAppender(layout);
    	log.addAppender(stdout);
    J'obtiens deux erreurs de compilation sur la dernière ligne. La première sur le '.' de 'log.' et la deuxième sur 'stdout'.

    Eclipse me donne comme erreur :
    - Syntax error on token(s), pisplaced construct(s)
    - Syntax error on token "stdout", VariableDeclaratorId expected after this token

    Je ne comprend pas ces erreurs. J'ai pourtant copié le code du tutoriel. Est-ce normal ?

    - 2ème problème :

    Le tutoriel propose, dans la 3ème section, pour configurer les logger de passer par un fichier de propriétés en utilisant la classe PropertyConfigurator.

    En pratique comment fait-on le lien entre le fichier de configuration et les différentes classes où je souhaite utiliser les logger ? Faut-il faire ce lien dans chacune de ces classes ?

    Merci d'avance pour votre temps !

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par SAKDOSS Voir le message
    Bonjour,

    N'ayant pas fait de java depuis un moment
    Effectivement, vous avez oublié les bases. Votre code doit être dans une méthode, là il est brut de décoffrage dans la classe.



    En pratique comment fait-on le lien entre le fichier de configuration et les différentes classes où je souhaite utiliser les logger ? Faut-il faire ce lien dans chacune de ces classes ?
    Chaque classe fait simplement un appel à Logger.getLogger. La configuration de log4j est un singleton. Vous n'etes même pas obligé de faire appel à PropertyConfigurator. Si votre fichier de config est log4j.properties et qu'il est à la racine du classpath, il sera utilisé par défaut.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Points
    63
    Par défaut
    Merci pour votre réponse. Effectivement en utilisant un fichier log4j.properties à la racine cela marche à merveille.

    Pour ce qui est de l'initialisation dans le code, n'est-il pas possible de définir un logger de classe ? J'ai essayer en passant les variables static mais j'ai toujours les mêmes erreurs

    Si je fais ce que vous me conseiller et que j'initialise le logger dans une méthode, ce dernier ne sera utilisable que dans la méthode en question non ?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    L'initialisation, c'est une seule fois, si vous devez utiliser autre chose que log4j.properties ou log4j.xml, mettez l'initialisation (Configurator) au début de votre programme, dans la méthode main par exemple.

    La distinction entre les loggers se fait uniquement par leur nom. Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class A {
        private static Logger log = Logger.getLogger(A.class);
    }
    public class B {
        private static Logger log = Logger.getLogger(B.class);
    }
    et il n'y a pas besoin de mettre plus que ca dans vos classes.

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

Discussions similaires

  1. [JMS] [openJMS] erreur lors de l'initialisation du contexte
    Par bo7mid dans le forum Java EE
    Réponses: 3
    Dernier message: 31/03/2010, 11h49
  2. Réponses: 1
    Dernier message: 02/06/2008, 20h40
  3. Message d'erreur lors de l'initialisation des queries
    Par Pierre FORAZ dans le forum XMLRAD
    Réponses: 2
    Dernier message: 21/09/2007, 15h26
  4. Erreur lors de l'initialisation du BDE
    Par maximdus dans le forum Bases de données
    Réponses: 10
    Dernier message: 06/08/2005, 03h24
  5. [VB6] Erreur lors de l'ouverture d'un document Word
    Par Marco le Pouillot dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/01/2003, 09h30

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