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 Changement localisation de fichier journal


Sujet :

Logging Java

  1. ###raw>post.musername###
    Membre à l'essai
    Log4J Changement localisation de fichier journal
    Bonjour

    ça doit être tout con mais je me prend la tète et je n'arrive toujours pas a trouver le pourquoi du comment

    Alors je veux tous simplement journaliser mes log avec Log4J sur eclipse

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    FileAppender fa = new FileAppender();
    fa.setName("FileLogger");  //"FileLogger");
    fa.setFile("myLog.log");  //"mylog.log");
     
    fa.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
    fa.setThreshold(Level.DEBUG);
    fa.setAppend(true);
    fa.activateOptions();
     
    logger.addAppender(ListesVariables.getListVariables().getFileLog());
    logger.setLevel(Level.ALL);
    logger.log(Level.DEBUG, "Commentaire test");


    ce bout de code marche bien et me génère mon fichier de log a la racine de mon projet Java

    Maintenant je veux changer l'endroit de mon fichier log donc je met setFile(C:\\Log\\myLog.log)

    Et la rien ne marche aucune erreur mais il me génere pas mon fichier dans le dossier C:\\Log??

    Si qu'elle qu'un peux m'aider svp

    Cordialement
      0  0

  2. #2
    Membre expert
    Est-ce que le répertoire C:\Log existe?
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Membre à l'essai
    Merci pour votre réponse
    oui le répertoire existe bien

  4. #4
    Membre expert
    En effet, pareil chez moi.

    Une bonne raison de vouloir faire de la config directement en manipulant les objets Java plutôt que (comme 99.9% des gens) en utilisant les fichiers de configuration standards log4j.[properties|xml]?
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Membre à l'essai
    Donc pour mon exemple dans votre cas vous aurez fait comment ? on configure comment les fichiers standard Log4j du coups ?

  6. #6
    Membre expert
    Par exemple, avec un fichier log4j.properties à la racine du classpath, qui contient ça:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    log4j.rootLogger=DEBUG, CONSOLE, JSON
     
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.layout=org.apache.log4j.EnhancedPatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern=%d{HH:mm:ss,SSS} | %35.35c{3.} | %-5p | %m%n
     
    log4j.appender.FILE=org.apache.log4j.RollingFileAppender
    log4j.appender.FILE.File=C:/logs/my.log
    log4j.appender.FILE.MaxFileSize=10MB
    log4j.appender.FILE.MaxBackupIndex=10
    log4j.appender.FILE.Append=true
     
    log4j.logger.com.me.blabla=DEBUG


    ... mais ce n'est qu'une manière parmis des dizaines...

    plus d'infos ici: https://logging.apache.org/log4j/2.x...iguration.html
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  7. #7
    Membre à l'essai
    C'est vraiment fou je suis passé par un log4j.properties

    et pour tester mon fichier j'ai fait ça
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	PropertyConfigurator.configure("log4j.properties");
    	logger.setLevel(Level.ALL);
    	logger.log(Level.DEBUG, "1er test");



    Donc pareil le même problème un dossier directement dans la racine myLog.log ça marche
    par contre n'importe qu'elle dossier ailleurs ça ne marche pas j'ai essayé avec C:/Log/myLog/log

    Je ne comprend plus rien il est ou le pb

  8. #8
    Membre expert
    Pourquoi tu fais ça:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    PropertyConfigurator.configure("log4j.properties");
    logger.setLevel(Level.ALL);

    ?

    En log4j c'est automatique, quand tu obtiens un logger il est prêt à l'emploi et est configuré en fonction de ce qui est dans log4j.properties. Tu fais juste org.apache.log4j.Logger.getLogger(MaClass.class).warn("un message"); et c'est tout. Besoin de rien de plus.

    Sinon c'est qu'il y a un problème dans le fichier de config. Mais pas touche au code java!
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C