Andy McBride
Thu, 11 Dec 2003 09:53:52 -0800
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]