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] removeAppender(String name)


Sujet :

Logging Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2007
    Messages : 46
    Points : 41
    Points
    41
    Par défaut [log4j] removeAppender(String name)
    Bonjour tout le monde,

    je suis actuellement en train d'utiliser log4j dans un de mes programmes ( et je decouvre ) et j'ai un petit probleme avec une fonction.

    En gros j'ai deux niveau dans mes log, debug et info, les deux ecrivent à la fois dans la console (ConsoleAppender) et dans un fichier (FileAppender). ces configuration sont faites par le biais d'un fichier log4j.property. Dans mon programme j'ai a un moment une option "SILENT" qui supprimer tout affichage sur la console. il faut donc que je supprime l'appender consoleAppender. pour cela je passe par la fonction logger.removeAppender(String appenderName).

    et...ca ne marche pas :s

    ci-joint mon log4j.property:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    # Set root category priority to INFO and its only appender to CONSOLE.
    log4j.rootCategory=DEBUG, CONSOLE, LOGFILE
     
    # CONSOLE is set to be a ConsoleAppender using a PatternLayout.
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n
     
    # LOGFILE is set to be a File appender using a PatternLayout.
    log4j.appender.LOGFILE=org.apache.log4j.FileAppender
    log4j.appender.LOGFILE.File=axis.log
    log4j.appender.LOGFILE.Append=true
    log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
    et ce que je fais dans mon prog:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public static void main(String[] args)  {
     
            /* Gestion du log par l'intermediaire de log4j */
            org.apache.log4j.PropertyConfigurator.configure("log4j.properties");
     
            logger.removeAppender("log4j.appender.CONSOLE");       
     
            logger.debug("DEBUG");
            logger.info("STANDART");
            System.exit(0);
    }
    ps: j'ai reduit le code pour faire mes test...

    merci d'avance pour votre aide!

  2. #2
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2007
    Messages : 46
    Points : 41
    Points
    41
    Par défaut
    Personne ne sait donc comment desactiver un appender au sein de mon programme???

    je reussi bien pourtant a recuperer mon appender grace à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Appender a = Category.getRoot().getAppender("CONSOLE");
    Mais lorsque je fais mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log.removeAppender("CONSOLE");
    ou
    j'obtiens pour le close l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log4j:ERROR Attempted to append to closed appender named [CONSOLE].
    et pour le premier, l'info est toujours redirigé vers ma console

    plz de l'aide!

    merci

  3. #3
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2007
    Messages : 46
    Points : 41
    Points
    41
    Par défaut
    Bon et bien, au final je me repond tout seul, si ca peut aider des gens...

    Donc la solution passe par les categories au lieu de mon "pointeur" Log.

    en gros, pour supprimer mon appender console je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Appender a = Category.getRoot().getAppender("CONSOLE");
            Category.getRoot().removeAppender(a);


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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/09/2010, 17h48
  2. Function name must be a string.
    Par MAMIKA dans le forum MATLAB
    Réponses: 7
    Dernier message: 25/03/2008, 16h22
  3. Signification de property Name : string read FName;
    Par Triste dans le forum Débuter
    Réponses: 5
    Dernier message: 06/11/2007, 15h03
  4. [ORACLE 8i] ORA-01036 / oci bind by name pour string
    Par mrfred dans le forum Interfaces de programmation
    Réponses: 7
    Dernier message: 02/08/2007, 12h11
  5. [RTTI] TObject.FieldAdress(Name : String) : Pointer
    Par Clorish dans le forum Langage
    Réponses: 3
    Dernier message: 30/09/2004, 14h41

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