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]

Reply via email to