tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Mixon (qwest)" <rnmi...@qwest.net>
Subject commons-logging logger instances - how to initialize in replicated session objects
Date Sat, 12 Feb 2005 00:23:25 GMT
I have been working with Filip Hanik to get failover/session replication
working for my application. Finally it is working quite well. Hooray for
Filip!

However it did uncover one issue with the way I was handling the
commons-logging logger instances in my business objects that I store in
the HTTP session at times.

Given the following class:
  public class MyBusinessObject1 implements Serializable {
    private static Log log =
LogFactory.getLog(ClassMeasurementFilter.class);
    <SNIP>
    public void setShowXAxisAsPercentages(boolean
showXAxisAsPercentages) {
        this.showXAxisAsPercentages = showXAxisAsPercentages;
        if (log == null) {
            log = LogFactory.getLog(ClassMeasurementFilter.class);
            log.info("setShowXAxisAsPercentages - log was null");
        }
        if (log.isDebugEnabled()) log.debug("setShowXAxisAsPercentages
set to "+this.showXAxisAsPercentages);
    }
    <SNIP>

I had to put the "if (log == null)" check in because when the objects
were replicated to another cluster instance and failover occured I would
get an NPE on the "log" variable.

Obviously having to put this "if (log == null)" check in is very awkward
and error prone.

Other approaches include creating a utility method in the base class for
my business objects. I'm not sure if this will give me the "logger per
class" that I've been used to so that I can readily identify where log
messages come from.

Are there any other approaches anyone would suggest?

Thank you - Richard


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


Mime
View raw message