> 
> Good day
> 
> I am having a hard time understanding how to use commons logging on
Tomcat.   The struts.apache.org suggest the following usage (presumably
for  business objects) (taken from: 
> http://struts.apache.org/1.x/userGuide/building_controller.html )
> 
> 
>               package com.foo;
>                     // ...
>                     import org.apache.commons.logging.Log;
>                     import org.apache.commons.logging.LogFactory;
>                     ...
>                     public class User {
>                     // ...
>                     private static Log log =
> LogFactory.getLog(User.class);
>                     // ...
>                     public void setBar(Bar bar) {                   
> 
>                     log.trace("Setting bar to " + bar);
>                     this.bar = bar;
>                     }
>                     // ...
>                     }
>                 
> 
> The suggestion seems to be that it is OK to declare my Logger as a
> static variable in the business object.  This is ideal for me
> because,
> I will be accessing the Logger from both instance and static methods,
> and so I do not want to have to declare this as an instance variable.
>  
> 
> However, I am wondering whether this is OK, given that my business
> objects will be being accessed from different servlet threads.  Can
> anyone tell me whether this is OK?, and if not, what is the correct
> way
> to do this?
> 
> My second question is whether the same usage is valid for Action (or
servlet)  classes. I saw the following example, at 
>
http://www.mobilefish.com/developer/struts/struts_quickguide_log4j.html
> but am not certain as to whether using a static variable would be OK
> here.  Would it?
> 
> public class DemoServlet extends Servlet {
> 
>       private static Log log =
> LogFactory.getLog("com.mobilefish.DemoAction");
> 
>       public service  etc etc      {}

> }
> 
> The commons logging documentation notes the following: 
> 
> Note that for application code, declaring the log member as "static"
> is
> more efficient as one Log object is created per class, and is
> recommended. However this is not safe to do for a class which may be
> deployed via a "shared" classloader in a servlet or j2ee container or
> similar environment. If the class may end up invoked with different 
> thread-context-classloader values set then the member must not be
> declared static. The use of "static" should therefore be avoided in
> code within any "library" type project. 
> 
> I'm not clear as to what the above means, from a practical
> perspective
> in the context of a web applicaiton.  What does this mean in simple
> terms?
> 
> Taken from:
>
http://jakarta.apache.org/commons/logging/guide.html#Configuring_Log4J
> 
> 
> 
> 
> 
>  
>
____________________________________________________________________________________
> The all-new Yahoo! Mail beta
> Fire up a more powerful email and get things done faster. 
> http://new.mail.yahoo.com
> 
> 



 
____________________________________________________________________________________
Sponsored Link

$420k for $1,399/mo. 
Think You Pay Too Much For Your Mortgage? 
Find Out! www.LowerMyBills.com/lre

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to