static variables are not serialized because they are not "part of the object
instance being serialized". (Can thing of a better phrasing)
-Tim
Spiegs wrote:
Ok, in a nutshell - using a private static logger in each model object
will not be serialized across the cluster. Use the following 3 lines of
code you provided and I won't have any problems with the log4j log
instance not being serializable, because it never will be. Right? (I'm
not familiar with how the Classloader handles static variables in a
clustered environment)
Thanks,
Eric
-------- Original Message ------
Ditch the super class philosphy. And copy the following 3 lines of code:
import ... LogFactory;
import ... Log;
private static log = LogFactory.get...(My.class);
You don't want to use the super class philophy because debugging the
inheritance chain becomes impossible. For example:
SuperClass
SubClass
SubSubClass
SubSubSubClass
With a log variable at the Super class level inherited by the sub
classes, it is IMPOSSIBLE to debug SubClass or SubSubClass. (As well as
SuperClass) For example - I might want trace turned on for the super
class and warn on for the rest of the classes in the hierarchy.
Inheritance kills any chance of fine grained control of log output.
If it's static - it can't be transient. And all the instances share all
the same log instance at the Classloader level so it is never serialized.
-Tim
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]