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