I use something like this: public class Parent { protected Logger log = Logger.getLogger(getClass()); public void myMethod() { log.debug("logging message"); } }
public class Child1 extends Parent { public void execute1() { myMethod(); } } public class Child2 extends Parent { public void execute2() { myMethod(); } } public class TestChildren { public static void main(String[] args) { new Child1().execute1(); new Child2().execute2(); } } I the control the logging with the log4j.xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <!--================= Appender definitions ==============================--> <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> <param name="Threshold" value="debug"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p: %c{1}.%M: %m%n"/> </layout> </appender> <!--================= Logger definitions ==============================--> <logger name="Child1"> <level value="debug"/> </logger> <logger name="Child2"> <level value="off"/> </logger> <!--================= Root Logger ==============================--> <root> <level value="all"/> <appender-ref ref="CONSOLE"/> </root> </log4j:configuration> Regards Andy > -----Original Message----- > From: Scott Melcher [mailto:[EMAIL PROTECTED] > Sent: 11 December 2003 15:47 > To: 'Log4J Users List' > Subject: Log based on object and not the class > > > Hi, my problem is that in my object architecture/hierarchy I > have dozens of classes that extend a single parent class. > The parent class has a method that is called by all of the > child classes. It is in this method that I have several log > statements. The problem is that I only have the ability to > turn the logger on or off for that parent class. If I turn > it on then I will get too many logging messages. I would > only like to log messages in that parent class for a given > child class. I know I am not explaing this well so I will add > a quick code example. > > In my example I only want to log messages from the Child1 > class. Therefore if I was to execute my two child classes I > would want to get a single "logging message". > > Class Parent { > ... > Public void myMethod() { > Logger.debug("logging message"); > } > } > > Class Child1 extends Parent { > ... > Public void execute1() { > this.myMethod(); > } > } > > Class Child2 extends Parent { > ... > Public void execute2() { > this.myMethod(); > } > } > > THANKS for any input you can give! > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]