Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Commons logging madness

Hal,
at OPS4J we came across the same logging mess, so I would recommend to
take a look at Pax Logging:
http://wiki.ops4j.org/confluence/display/ops4j/Pax+Logging

Cheers

/peter

On 12/21/06, Hal Hildebrand <hal.hildebrand@xxxxxxxxxx> wrote:

 Cross posting this on the equinox dev and Spring/OSGi lists.

 I'm desperately trying to get logging to work in the Spring/OSGi testing
environment as I simply have no hair left - having pulled it out from
frustration.  Those who know me will understand that this is a lot of hair.

 So, in desperation, I finally turned on the commons logging diagnostic
information so I can see something - anything - that will tell me what the
heck is going on.  Attached is the trace running under Equinox 3.2.1 and
from running under Knopflerfish 2.0.1.

 The same loaded bundle configuration is used for both runs.  In the KF
case, the log4J implementation is discovered and used as expected.  In the
Equinox case, the Log4J configuration fails because of  which results in
commons logging using the JDK logging implementation.

 The problem appears to be multiple versions of
org.apache.commons.logging.Log which causes – as one might expect – a class
mismatch problem.

 In both the KF and Equinox case, I have set the OSGi System property
"org.osgi.framework.bootdelegation" to
"javax.*,org.w3c.*,sun.*,org.xml.*,com.sun.*".  So, I'm not sure what's
happening.  I'm stumped as to what's going on.

 Below are the relevant sections of trace output in the Equinox case
(there's a lot of output, sorry).

 Any help would be appreciated in tracking this down...


 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
[WARNING] the context classloader is not part of a parent-child relationship
with the classloader that loaded LogFactoryImpl.
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
Trying to load
'org.apache.commons.logging.impl.Log4JLogger' from
classloader
org.eclipse.core.runtime.internal.adaptor.ContextFinder@667901
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
Class 'org.apache.commons.logging.impl.Log4JLogger' was
found at
'jar:file:/Users/hhildebrand/.m2/repository/org/springframework/osgi/commons-logging.osgi/1.1-SNAPSHOT/commons-logging.osgi-1.1-SNAPSHOT.jar!/org/apache/commons/logging/impl/Log4JLogger.class'
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
The log adapter
'org.apache.commons.logging.impl.Log4JLogger' is missing
dependencies when loaded via classloader
org.eclipse.core.runtime.internal.adaptor.ContextFinder@667901:
org/apache/log4j/Category
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
Attempting to instantiate
'org.apache.commons.logging.impl.Jdk14Logger'
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
[WARNING] the context classloader is not part of a parent-child relationship
with the classloader that loaded LogFactoryImpl.
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
Trying to load
'org.apache.commons.logging.impl.Jdk14Logger' from
classloader
org.eclipse.core.runtime.internal.adaptor.ContextFinder@667901
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
Class 'org.apache.commons.logging.impl.Jdk14Logger' was
found at
'jar:file:/Users/hhildebrand/.m2/repository/org/springframework/osgi/commons-logging.osgi/1.1-SNAPSHOT/commons-logging.osgi-1.1-SNAPSHOT.jar!/org/apache/commons/logging/impl/Jdk14Logger.class'
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
Class 'org.apache.commons.logging.impl.Jdk14Logger' was
found in classloader
org.eclipse.core.runtime.internal.adaptor.ContextFinder@667901.
It is bound to a Log interface which is not the one loaded from classloader
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
Warning: bad log hierarchy. You have more than one version of
'org.apache.commons.logging.Log' visible.
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
Trying to load
'org.apache.commons.logging.impl.Jdk14Logger' from
classloader
org.apache.maven.surefire.booter.IsolatedClassLoader@14994372
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
Class 'org.apache.commons.logging.impl.Jdk14Logger' was
found at
'jar:file:/Users/hhildebrand/.m2/repository/org/springframework/osgi/commons-logging.osgi/1.1-SNAPSHOT/commons-logging.osgi-1.1-SNAPSHOT.jar!/org/apache/commons/logging/impl/Jdk14Logger.class'
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
Class 'org.apache.commons.logging.impl.Jdk14Logger' was
found in classloader
org.apache.maven.surefire.booter.IsolatedClassLoader@14994372.
It is bound to a Log interface which is not the one loaded from classloader
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881
 [LogFactoryImpl@15479518 from
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4999881]
Warning: bad log hierarchy. You have more than one version of
'org.apache.commons.logging.Log' visible.
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev






Back to the top