Thanks Bill

This helps a lot.  I'm using Log4j, so this is good news.  Also, I wont
be putting any of my classes in $CATALINA_HOME/shared/lib or 
$CATALINA_HOME/common/lib.  

Thanks again.  


--- Bill Barker <[EMAIL PROTECTED]> wrote:

> 
> "Mon Cab" <[EMAIL PROTECTED]> wrote in message 
> news:[EMAIL PROTECTED]
> >
> >>
> >> 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?
> >>
> 
> I think that there may be a race condition with SimpleLog.  But JULI
> and 
> Log4j are thread-safe, so it's fine to use a static instance of Log
> with 
> these.
> 
> >> 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?
> >>
> 
> It means that you have potential gotus if you use a static instance
> in a 
> class that is in a jar in $CATALINA_HOME/shared/lib or 
> $CATALINA_HOME/common/lib.  It's fine to use a static instance if the
> class 
> is living in a jar in WEB-INF/lib.
> 
> >> 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]
> >
> > 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 



 
____________________________________________________________________________________
Sponsored Link

Mortgage rates near 39yr lows. 
$510k for $1,698/mo. Calculate new payment! 
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