[kepler-dev] Refactoring Log4J Before 2.0.0
David Welker
david.v.welker at gmail.com
Tue Jun 8 23:00:52 PDT 2010
Hello All,
I was wondering if people think it would be reasonable to refactor out
the use of Log4J and replace it with java.util.logging classes before
the 2.0 release. As a general matter, I think we should probably stick
to features provided by the JDK. More significantly, when providing
technical support for a user who appears to be affiliated with Airbus,
I found that Log4j was interfering with our scheme for allowing
multiple class loaders in Kepler. I am not completely certain why this
is the case at this point, but I speculate it has to do with some
interaction between Log4J and the classpath (which it uses to read
logging permissions, among other things). I suspect that when you
split Log4J across the standard class loader and multiple class
loaders, it crashes. This conclusion is reinforced by the fact that
Log4J does not interfere when you specify that every single module
have its own class loader. However, the problem with this "solution"
is that it is much too slow. If you use multiple class loaders, it is
important to use care not to use too many, as there is inefficiency
associated with our custom class loaders compared to the standard
class loader provided by the JDK.
Anyway, if no one objects, I would like to refactor all of the code in
Kepler/CORE to use java.util.logging instead of Log4J. In this way, we
will make 2.0.0 compatible with multiple class loaders and also
eliminate a dependency. There has not been a huge amount of demand for
multiple class loaders up to this point. But, the functionality does
seem to be needed occasionally (like for the individual from Airbus)
and it would be nice to support it.
Thoughts?
-David
More information about the Kepler-dev
mailing list