[Log4J] Messages en double
Bonjour à tous.
Voici mon problème (un pb de compréhension j'imagine)
Soient 2 classes dans 2 packages distincts :
Code:
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 dans un sous package :
Code:
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");
}
} |
Et le fichier de properties LOG4J associé :
Code:
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 |
En exécutant ce code j'ai bien :
Code:
1 2
| [24/08/15 09:31:42,744] INFO MainClass INFO message
[24/08/15 09:31:42,747] INFO SubClass INFO Message |
Si je modifie le properties comme suis :
Code:
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 |
J'ai bien (et c'est cohérent) :
Code:
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 |
Maintenant mon problème : je voudrais que seules les classes du 'subpackage' soient en debug
Je modifie donc mon properties comme suit :
Code:
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 |
Et j'obtiens :
Code:
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 |
Pourquoi tous les messages de ma SubClass sont ils en double ???
Merci de votre aide