[Log4J] Configuration et quelques questions de débutant
Bonjour,
Je travaille actuellement sur une application web (JSF + Spring + Hibernate sur Tomcat), et j'essaye vainement de logger mes messages avec Log4J.
Voici mon fichier de conf :
Code:
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
| <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" reset="true" threshold="all" debug="true">
<appender name="filedebug" class="org.apache.log4j.FileAppender">
<param name="file" value="K:\\Appli\\logs\\debug.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%c] %-5p - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelMatchFilter">
<param name="levelToMatch" value="DEBUG"/>
</filter>
<filter class="org.apache.log4j.varia.StringMatchFilter">
<param name="StringToMatch" value="Appli:" />
<param name="AcceptOnMatch" value="true" />
</filter>
<filter class="org.apache.log4j.varia.DenyAllFilter"/>
</appender>
<appender name="fileinfoup" class="org.apache.log4j.FileAppender">
<param name="file" value="K:\\Appli\\logs\\infoup.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%c] %-5p - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="levelMin" value="INFO"/>
<param name="levelMax" value="FATAL"/>
</filter>
<filter class="org.apache.log4j.varia.StringMatchFilter">
<param name="StringToMatch" value="Appli:" />
<param name="AcceptOnMatch" value="true" />
</filter>
<filter class="org.apache.log4j.varia.DenyAllFilter"/>
</appender>
<logger name="AppliLogger" additivity="true">
<level value="DEBUG"/>
<appender-ref ref="filedebug" />
<appender-ref ref="fileinfoup"/>
</logger>
<root>
<appender-ref ref="fileinfoup"/>
<appender-ref ref="filedebug" />
</root>
</log4j:configuration> |
Les problèmes sont que :
- Les logs n'apparaissent dans mes fichiers qu'à l'arrêt du serveur, même en utilisant les champ "ImmediateFlush" et "bufferedIo" ça ne change rien.
- En développement, j'utilise Eclipse et le plugin Tomcat, et j'aimerais éviter de mettre un chemin de fichier dans le fichier de configuration log4j. Est-ce qu'en production un chemin relatif conviendrait ?
Voici la sortie de la console après chargement du fichier de configuration
Citation:
log4j: reset attribute= "true".
log4j: Threshold ="all".
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [AtoriLogger] additivity to [true].
log4j: Level value for AppliLogger is [DEBUG].
log4j: AppliLogger level set to DEBUG
log4j: Class name: [org.apache.log4j.FileAppender]
log4j: Setting property [file] to [K:\Appli\logs\debug.log].
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss} [%c] %-5p - %m%n].
log4j: Setting property [levelToMatch] to [DEBUG].
log4j: Adding filter of type [class org.apache.log4j.varia.LevelMatchFilter] to appender named [filedebug].
log4j: Setting property [stringToMatch] to [Appli:].
log4j: Setting property [acceptOnMatch] to [true].
log4j: Adding filter of type [class org.apache.log4j.varia.StringMatchFilter] to appender named [filedebug].
log4j: Adding filter of type [class org.apache.log4j.varia.DenyAllFilter] to appender named [filedebug].
log4j: setFile called: K:\Appli\logs\debug.log, true
log4j: setFile ended
log4j: Adding appender named [filedebug] to category [AtoriLogger].
log4j: Class name: [org.apache.log4j.FileAppender]
log4j: Setting property [file] to [K:\Appli\logs\infoup.log].
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss} [%c] %-5p - %m%n].
log4j: Setting property [levelMin] to [INFO].
log4j: Setting property [levelMax] to [FATAL].
log4j: Adding filter of type [class org.apache.log4j.varia.LevelRangeFilter] to appender named [fileinfoup].
log4j: Setting property [stringToMatch] to [Appli:].
log4j: Setting property [acceptOnMatch] to [true].
log4j: Adding filter of type [class org.apache.log4j.varia.StringMatchFilter] to appender named [fileinfoup].
log4j: Adding filter of type [class org.apache.log4j.varia.DenyAllFilter] to appender named [fileinfoup].
log4j: setFile called: K:\Appli\logs\infoup.log, true
log4j: setFile ended
log4j: Adding appender named [fileinfoup] to category [AppliLogger].
log4j: Adding appender named [fileinfoup] to category [root].
log4j: Adding appender named [filedebug] to category [root].
Quelqu'un saurait-il m'indiquer comment résoudre ces problèmes ?
Je travaille sous Windows Seven, avec Eclipse 3.6.2 Helios.
Merci d'avance pour votre aide.