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

Eclipse Java Discussion :

[log4j] deux projets


Sujet :

Eclipse Java

  1. #1
    En attente de confirmation mail
    Inscrit en
    Avril 2002
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 52
    Points : 51
    Points
    51
    Par défaut [log4j] deux projets
    Bonjour. J'ai un petit souci.
    J'ai deux projets différents : A et B. Dans A, j'ai une classe qui configure log4j et qui l'utilise une première fois (c'est un test). J'ai dans ce projet un rep resources qui contient le log4j.xml

    Dans le projet B, j'utilise la classe du projet A. A ce momet, il me met une erreur :

    java.io.FileNotFoundException: resources/log4j.xml (No such file or directory)

    Le projet A est dans le classpath du projet B et je me dit que cela devrait donc fonctionner.

    Maintenant, si je déplace le rep resources (donc log4j.xml) dans le projet B là, ça fonctionne. Mais ce n'est pas le but car je voudrait qu'un fichier soit utilisé pour le rapport d'erreur dans le projet A.

    J'espère que j'ai été clair.

    Merci de votre aide.

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Points : 163
    Points
    163
    Par défaut
    Il faut que tu ajoutes le répertoire contenant ton fichier log4j.xml aux librairies du projet B (le fait d'ajouter le projet A ne suffit pas, il faut bien présicer le répertoire contenant log4j.xml).

    Une autre solution est de créer un projet C qui est un projet simple (et non java) qui va contenir l'ensemble des fichiers de properties de tes projets A, B. Puis tu ajoutes le projet C aux librairies du projet A et du projet B.

  3. #3
    En attente de confirmation mail
    Inscrit en
    Avril 2002
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    C'est ce que j'ai fait mais ça ne fonctionne pas non plus. Ainsi, j'ai créé un A (non java) avec les resources et le B avec le code de logging (de test). Quand je veux ajouter le A dans le B, le A n'est pas reconnu car non java.

    Si je crée un projet Java avec les resources, le résultat est le même.

    Apparemment, je dois simplement mettre les resources dans le même projets ce qui n'est pas (pour moi) le top du top au niveau design (je pense) du projet.

    Mais merci pour la réponse.

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Points : 163
    Points
    163
    Par défaut
    Ton projet simple doit être ajouté en tant que "Ajouter un dossier de classe" (Add class folder) quand tu définis tes librairies sur ton projet A ou B.

    Par exemple, mon projet A contenait le code suivant et mon fichier log4j.xml était contenu dans la projet C. Tous les appenders définient dans le fichier étaient bien présent dans l'enumeration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		Logger log = Logger.getRootLogger();
     
    		Enumeration appenders =  log.getAllAppenders();
    		while (appenders.hasMoreElements()) {
    			appenders.nextElement();
    		}

  5. #5
    En attente de confirmation mail
    Inscrit en
    Avril 2002
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    Dans mon projet qui contient le code, au niveau des properties/Libraries, j'ai ajouté le projet simple (par add class folder). Quand je lance le program, j'ai toujours la même erreur. Ils apparaissent bien dans mon projet qu contien le code (en blanc) mais quand je le lance, toujours la même erreur.

    bizarre. J'ai la version 3.0.2 de Eclipse

    Merci

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Points : 163
    Points
    163
    Par défaut
    Tu es sûr que tu as mis ton fichier de properties à la racine de ton projet simple.

    Tu as essayé le code que je t'ai fourni précédemment (à adapter pour afficher le rséultat sur la concole ou un fichier de log, ou sinon essayer en debug) avec un log4j.xml du style

    # Set root category priority to DEBUG and set its only appender to A1
    log4j.rootCategory=INFO, A1

    # A1 is set to be a ConsoleAppender (writes to system console).
    log4j.appender.A1=org.apache.log4j.ConsoleAppender

    # A1 uses PatternLayout.
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

  7. #7
    En attente de confirmation mail
    Inscrit en
    Avril 2002
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    OK ca fonctionne. Mais il substiste encore un problème.
    Premièrement un rappel :
    J'ai un projet simple (SimpleProject) avec un fichier log4j.xml
    J'ai un projet java (JavaProject) qui utilise du logging. Dans ce projet, j'ajoute SimpleProject grâce à "Add Class Folder".
    Grâce à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Logger.getLogger(Test.class).error("test");
    Je log bien les infos.

    Maintenant, si je crée un dir dans SimpleProject (resources) et que je met le log4j.xml dans ce dir, j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DOMConfigurator.configure("resources/log4j.xml");
    Logger.getLogger(Test.class).error("test");
    et j'obtiens un FileNotFoundException.

    Je ne comprends pas. Ce qui veut dire que si je veux utiliser plusieurs log4j.xml (log1.mxl, log2.xml), je ne saurais pas en utilisant cette façon daire dans eclipse ?

    Merci pour l'aide en tous cas

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Points : 163
    Points
    163
    Par défaut
    Pourquoi veux tu avoir plusieurs fichier log4j.xml pour un seul projet ?

    Pour ma culture perso, peux tu me donner un exemple de cette utilisation ?

  9. #9
    En attente de confirmation mail
    Inscrit en
    Avril 2002
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    Hé bien voilà qui est résolu. Pour que ça fonctionne, il faut évidemment utiliser ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    URL u = ClassLoader.getSystemClassLoader().getSystemResource("resources/log4j.xml");
    DOMConfigurator.configure(u);
     Logger.getLogger(Test.class).error("test");
    Voilà qui est réglé. Merci pour l'aide.

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

Discussions similaires

  1. rassembler deux projets windev
    Par nath-0-0 dans le forum WinDev
    Réponses: 2
    Dernier message: 17/04/2007, 13h09
  2. [VC++2005 express] deux projets identiques, l'un me fait une erreur
    Par méphistopheles dans le forum Visual C++
    Réponses: 4
    Dernier message: 16/01/2007, 07h24
  3. Compiler deux projets independants
    Par HASSIOMAR dans le forum Delphi
    Réponses: 1
    Dernier message: 02/01/2007, 16h39
  4. Réponses: 3
    Dernier message: 05/07/2006, 11h59
  5. [VB.NET] Regrouper deux projets
    Par neuropathie dans le forum VB.NET
    Réponses: 1
    Dernier message: 15/12/2005, 17h05

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