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] - comment envoyer les logs d'un jar X dans les logs du programme faisant appel à ce jar ?


Sujet :

Logging Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut [Log4j] - comment envoyer les logs d'un jar X dans les logs du programme faisant appel à ce jar ?
    Bonjour à tous,

    je vous explique mon problème :

    je fais un programme java qui log dans un fichier, disons "a.log". Ce programme fait appel à des bouts de code dans un autre programme, par le biais d'import(s), cet autre programme écrivant ses logs dans "b.log".

    Comment puis-je faire pour que toutes mes logs se fassent dans "a.log" ?

    voici la déclaration de mes loggers :

    dans mon programme "a" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private static final Logger logger = Logger.getLogger("simulateurtpebouchon");
      .
      .
      .
    PropertyConfigurator.configure("/data/conf/SimulateurTPEBouchonLogger.conf");
    dans mon programme "b" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private static final Logger logger = Logger.getLogger("simulateurtpe");
      .
      .
      .
    PropertyConfigurator.configure("/data/conf/SimulateurTPELogger.conf");
    Merci à vous

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Si tu as la main sur les deux JARs je te conseille d'utiliser une seule configuration de Log4J.

    Si tu es obligé d'avoir deux configurations disctinctes utilise alors deux Hierarchy.
    Dans ce cas,
    • soit tu utilises deux Logger
    • soit tu ajoutes un "Appender" qui répliques les logs dans l'autre Hierarchy
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    Je pense avoir résolu mon problème. J'ai procédé de cette façon :

    dans les 2 programmes, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static final Logger logger = Logger.getRootLogger();
    et mes logs figurent là où je le souhaitais

    Merci pour ta réponse !

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Il n'est pas très "propre" d'utiliser le Root Logger pour logger.

    Le problème vient sûrement du fait que tes deux classes modifient la configuration Log4J.

    Dans Log4J les loggers se dessinent comme une hiérarchie dont la racine est root logger (ex: le logger "com.developpez.java" hérite du logger "com.developpez" qui hérite du logger "com" qui hérite du Root Logger).
    L'héritage concerne le niveau du log (OFF, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, ALL) et les appenders.

    Les appenders sont des objets qui permettent d'écrire les messages sur un support (un fichier, la console).


    Ce qu'il faut c'est configurer Root Logger pour avoir un appender sur le fichier "a.log" et configurer le logger "simulateurtpe" avec un appender sur le fichier "b.log"

    log4j.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    log4j.rootLogger=INFO, A
    log4j.logger.simulateurtpe=INFO, B
    log4j.appender.A=org.apache.log4j.FileAppender
    log4j.appender.A.file=a.log
    log4j.appender.B=org.apache.log4j.FileAppender
    log4j.appender.B.file=b.log
    PS : Si ton problème est résolu, pense au bouton "Résolu" ;-)
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Comment fonctionne l'enregistrement des mots de passe dans les navigateurs ?
    Par monstroplante dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 26/08/2011, 15h28
  2. Réponses: 4
    Dernier message: 03/06/2011, 22h59
  3. Réponses: 2
    Dernier message: 22/07/2009, 11h01
  4. Réponses: 1
    Dernier message: 01/07/2009, 16h43
  5. Comment envoyer la valeur d'un bouton radio dans MySQL
    Par michka999 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 18/08/2006, 18h08

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