Bonjour à tous.
Voici mon problème (un pb de compréhension j'imagine)
Soient 2 classes dans 2 packages distincts :
et dans un sous package :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 package fr.gui.tests.log; import org.apache.log4j.Logger; import fr.gui.tests.log.subpackage.SubClass; public class MainClass { public static void main(String[] args) { Logger.getLogger(MainClass.class).info("MainClass INFO message"); Logger.getLogger(MainClass.class).debug("MainClass DEBUG message"); new SubClass(); } }
Et le fichier de properties LOG4J associé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 package fr.gui.tests.log.subpackage; import org.apache.log4j.Logger; public class SubClass { public SubClass() { super(); Logger.getLogger(getClass()).info("SubClass INFO Message"); Logger.getLogger(getClass()).debug("SubClass DEBUG Message"); } }
En exécutant ce code j'ai bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 log4j.rootLogger=INFO,myAppender log4j.appender.myAppender=org.apache.log4j.ConsoleAppender log4j.appender.myAppender.layout=org.apache.log4j.PatternLayout log4j.appender.myAppender.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss,SSS}] %p %m%n
Si je modifie le properties comme suis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [24/08/15 09:31:42,744] INFO MainClass INFO message [24/08/15 09:31:42,747] INFO SubClass INFO Message
J'ai bien (et c'est cohérent) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 log4j.rootLogger=DEBUG,myAppender log4j.appender.myAppender=org.apache.log4j.ConsoleAppender log4j.appender.myAppender.layout=org.apache.log4j.PatternLayout log4j.appender.myAppender.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss,SSS}] %p %m%n
Maintenant mon problème : je voudrais que seules les classes du 'subpackage' soient en debug
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [24/08/15 09:32:46,190] INFO MainClass INFO message [24/08/15 09:32:46,191] DEBUG MainClass DEBUG message [24/08/15 09:32:46,191] INFO SubClass INFO Message [24/08/15 09:32:46,191] DEBUG SubClass DEBUG Message
Je modifie donc mon properties comme suit :
Et j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 log4j.rootLogger=INFO,myAppender log4j.logger.fr.gui.tests.log.subpackage=DEBUG,myAppender log4j.appender.myAppender=org.apache.log4j.ConsoleAppender log4j.appender.myAppender.layout=org.apache.log4j.PatternLayout log4j.appender.myAppender.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss,SSS}] %p %m%n
Pourquoi tous les messages de ma SubClass sont ils en double ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 [24/08/15 09:34:56,129] INFO MainClass INFO message [24/08/15 09:34:56,129] INFO SubClass INFO Message [24/08/15 09:34:56,129] INFO SubClass INFO Message [24/08/15 09:34:56,130] DEBUG SubClass DEBUG Message [24/08/15 09:34:56,130] DEBUG SubClass DEBUG Message
Merci de votre aide
Partager