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] Externaliser nom du fichier de log


Sujet :

Logging Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 25
    Points : 21
    Points
    21
    Par défaut [Log4j] Externaliser nom du fichier de log
    Bonjour,

    je fais actuellement des essais avec log4j.
    J'aimerai utiliser un fichier de parametrage log4j.xml dont voici le code

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
     
     
      <!-- ================================= -->
      <!-- Preserve messages in a local file -->
      <!-- ================================= -->
     
     
      <!-- ============================== -->
      <!-- Append messages to the console -->
      <!-- ============================== -->
     
      <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out"/>
        <param name="Threshold" value="INFO"/>
     
        <layout class="org.apache.log4j.PatternLayout">
          <!-- The default pattern: Date Priority [Category] Message\n -->
    	  <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/> 
          <!-- <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/> -->
        </layout>
      </appender>
     
    	<appender name="fileinfoup" class="org.apache.log4j.FileAppender">     
         <layout class="org.apache.log4j.PatternLayout"> 
          <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
        </layout> 
     
     
     </appender>
     <appender name="filedebug" class="org.apache.log4j.FileAppender">   
         <layout class="org.apache.log4j.PatternLayout"> 
          <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
         </layout>
         <filter class="org.apache.log4j.varia.LevelMatchFilter">
             <param name="levelToMatch" value="DEBUG"/>
         </filter>
         <filter class="org.apache.log4j.varia.DenyAllFilter"/>
     </appender>
     
     
     
      <!-- ================ -->
      <!-- Limit categories -->
      <!-- ================ -->
     
     
     
     
      <!-- ======================= -->
      <!-- Setup the Root category -->
      <!-- ======================= -->
     <!-- <category name="com.monoprix" additivity="false">-->
    <!--     <priority value="INFO" /> -->
    <!--     <appender-ref ref="CONSOLE"/> -->
    <!-- </category>-->
     
      <root>
        <appender-ref ref="console"/>
        <appender-ref ref="fileinfoup"/> 
        <appender-ref ref="filedebug"/>        
      </root>
     
     
    </log4j:configuration>
    Le problème c'est que j'aimerai externaliser le paramètre du fichier de l'appender 'filedebug'

    Voici ma methode de test
    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
    16
    17
    18
    19
    20
    21
    22
    23
     
    public static void main(String[] args) {
      Logger logger = Logger.getLogger(Test.class);
     
      FileAppender fileAppender = (FileAppender)  logger.getAppender("filedebug");
      fileAppender.setFile("G:/test.log");				
     
      logger.addAppender(fileAppender);
     
      logger.debug("999 AVENUE DE LA REPUBLIQUELES ALLEES DU PARC----");
     
      String  adresse="999 AVENUE DE LA REPUBLIQUELES ALLEES DU PARC----";
      if(adresse.length()>50){
        adresse = adresse.substring(0,47);
        adresse = adresse+"...";
     
        logger.debug(adresse.length());
      }
     
     
    }
     
    }
    Avec ce code j'ai un nullPointerException... En effet la variable fileAppender est null. Comment faire pour pouvoir paramétrer le fichier de sortie en dehors du fichier xml.

    Merci

  2. #2
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Un peu tard pour la réponse, mais j'avais le même problème et je n'ai pas trouvé la réponse ailleurs sur le net.

    Dans ton log4j, les appenders sont en général rattachés au rootLogger, et pas au logger de ta classe.

    A l'utilisation de log4j, cela ne fait pas de différence puisque la propriété additivity permet de faire les héritages. Mais lorsque tu veux récupérer un appender, il faut bien repartir du root.

    Pour cela, tu mets simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    logger = LogManager.getRootLogger();
    et ça devrait rouler.

Discussions similaires

  1. [Log4J] Configuration pour plusieurs fichiers de log
    Par erara22 dans le forum Logging
    Réponses: 0
    Dernier message: 20/09/2011, 19h54
  2. [Log4j]Cherche visualiseur de fichiers logs de log4j
    Par RolandB dans le forum Logging
    Réponses: 9
    Dernier message: 18/03/2009, 15h11
  3. log4j date dans le nom du fichier log ?
    Par yoyo33fc dans le forum Logging
    Réponses: 9
    Dernier message: 31/10/2008, 13h42
  4. [log4j] Gestion de plusieurs fichiers de logs
    Par bapfuror dans le forum Logging
    Réponses: 5
    Dernier message: 18/04/2008, 12h17
  5. [log4j]Changer dynamiquement le fichier de log
    Par caro_a dans le forum Logging
    Réponses: 1
    Dernier message: 24/11/2007, 11h44

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