You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by st...@xks.co.uk on 2003/12/11 16:46:46 UTC

Re: Log based on object and not the class

Scott,

Why not add a switch parameter to the parent method?

i.e

Class Parent {
             ...
             Public void myMethod(boolean b) {
                         if (b==true) {
                              Logger.debug("logging message");
                         }
             }
}

Class Child1 extends Parent {
             ...
             Public void execute1() {
                         this.myMethod(true);
             }
}

Class Child2 extends Parent {
             ...
             Public void execute2() {
                         this.myMethod(false);
             }
}

Steve




                                                                                                                                       
                      "Scott Melcher"                                                                                                  
                      <smelcher@assistc        To:       "'Log4J Users List'" <lo...@jakarta.apache.org>                          
                      orp.com>                 cc:                                                                                     
                                               Subject:  Log based on object and not the class                                         
                      11/12/2003 15:46                                                                                                 
                      Please respond to                                                                                                
                      "Log4J Users                                                                                                     
                      List"                                                                                                            
                                                                                                                                       
                                                                                                                                       




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: log4j-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-user-help@jakarta.apache.org







---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-user-help@jakarta.apache.org


RE: Log based on object and not the class - Solution

Posted by Scott Melcher <sm...@assistcorp.com>.
Ceki,

That’s an excellent solution.  It's not very intrusive to the application.
I pay the expense of an extra method call but the benefits probably outweigh
the cost.

Thank you very much.

-----Original Message-----
From: Ceki Gülcü [mailto:ceki@qos.ch] 
Sent: Thursday, December 11, 2003 9:27 AM
To: Log4J Users List
Subject: RE: Log based on object and not the class

Scott,

I just committed a possible solution to the problem you raised.
You can look at it here:
http://cvs.apache.org/viewcvs.cgi/jakarta-log4j/examples/objectBased/

Does it solve the problem?

At 08:56 AM 12/11/2003 -0700, you wrote:
>I considered doing something like you suggested but I just hate to add code
>in order to handle logging.  Our application is very large and I would have
>to add some object layers in order to get it to work.  It seems like
>overkill.  For now I may just put external filters on my application that
>simply display the messages I am interested in.
>
>Thanks for the response.
>
>-----Original Message-----
>From: steve.beech@xks.co.uk [mailto:steve.beech@xks.co.uk]
>Sent: Thursday, December 11, 2003 8:47 AM
>To: Log4J Users List
>Subject: Re: Log based on object and not the class
>
>
>Scott,
>
>Why not add a switch parameter to the parent method?
>
>i.e
>
>Class Parent {
>              ...
>              Public void myMethod(boolean b) {
>                          if (b==true) {
>                               Logger.debug("logging message");
>                          }
>              }
>}
>
>Class Child1 extends Parent {
>              ...
>              Public void execute1() {
>                          this.myMethod(true);
>              }
>}
>
>Class Child2 extends Parent {
>              ...
>              Public void execute2() {
>                          this.myMethod(false);
>              }
>}
>
>Steve

-- 
Ceki Gülcü

      For log4j documentation consider "The complete log4j manual"
      ISBN: 2970036908 http://www.qos.ch/shop/products/clm_t.jsp  



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-user-help@jakarta.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-user-help@jakarta.apache.org


RE: Log based on object and not the class

Posted by Ceki Gülcü <ce...@qos.ch>.
Scott,

I just committed a possible solution to the problem you raised.
You can look at it here:
http://cvs.apache.org/viewcvs.cgi/jakarta-log4j/examples/objectBased/

Does it solve the problem?

At 08:56 AM 12/11/2003 -0700, you wrote:
>I considered doing something like you suggested but I just hate to add code
>in order to handle logging.  Our application is very large and I would have
>to add some object layers in order to get it to work.  It seems like
>overkill.  For now I may just put external filters on my application that
>simply display the messages I am interested in.
>
>Thanks for the response.
>
>-----Original Message-----
>From: steve.beech@xks.co.uk [mailto:steve.beech@xks.co.uk]
>Sent: Thursday, December 11, 2003 8:47 AM
>To: Log4J Users List
>Subject: Re: Log based on object and not the class
>
>
>Scott,
>
>Why not add a switch parameter to the parent method?
>
>i.e
>
>Class Parent {
>              ...
>              Public void myMethod(boolean b) {
>                          if (b==true) {
>                               Logger.debug("logging message");
>                          }
>              }
>}
>
>Class Child1 extends Parent {
>              ...
>              Public void execute1() {
>                          this.myMethod(true);
>              }
>}
>
>Class Child2 extends Parent {
>              ...
>              Public void execute2() {
>                          this.myMethod(false);
>              }
>}
>
>Steve

-- 
Ceki Gülcü

      For log4j documentation consider "The complete log4j manual"
      ISBN: 2970036908 http://www.qos.ch/shop/products/clm_t.jsp  



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-user-help@jakarta.apache.org


RE: Log based on object and not the class

Posted by Scott Melcher <sm...@assistcorp.com>.
I considered doing something like you suggested but I just hate to add code
in order to handle logging.  Our application is very large and I would have
to add some object layers in order to get it to work.  It seems like
overkill.  For now I may just put external filters on my application that
simply display the messages I am interested in.

Thanks for the response.

-----Original Message-----
From: steve.beech@xks.co.uk [mailto:steve.beech@xks.co.uk] 
Sent: Thursday, December 11, 2003 8:47 AM
To: Log4J Users List
Subject: Re: Log based on object and not the class


Scott,

Why not add a switch parameter to the parent method?

i.e

Class Parent {
             ...
             Public void myMethod(boolean b) {
                         if (b==true) {
                              Logger.debug("logging message");
                         }
             }
}

Class Child1 extends Parent {
             ...
             Public void execute1() {
                         this.myMethod(true);
             }
}

Class Child2 extends Parent {
             ...
             Public void execute2() {
                         this.myMethod(false);
             }
}

Steve




 

                      "Scott Melcher"

                      <smelcher@assistc        To:       "'Log4J Users
List'" <lo...@jakarta.apache.org>                          
                      orp.com>                 cc:

                                               Subject:  Log based on object
and not the class                                         
                      11/12/2003 15:46

                      Please respond to

                      "Log4J Users

                      List"

 

 





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: log4j-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-user-help@jakarta.apache.org







---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-user-help@jakarta.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-user-help@jakarta.apache.org