[logback-user] RCP

David Virdefors david.virdefors at purplescout.se
Thu May 24 14:59:49 CEST 2012


Hi, here is the rest of the stack trace:
14:14:04,991 |-INFO in ch.qos.logback.core.joran.action.AppenderAction -
About to instantiate appender of type [foo.RCPAppender]
14:14:04,992 |-ERROR in ch.qos.logback.core.joran.action.AppenderAction -
Could not create an Appender of type [foo.RCPAppender].
ch.qos.logback.core.util.DynamicClassLoadingException: Failed to
instantiate type foo.RCPAppender
	at ch.qos.logback.core.util.DynamicClassLoadingException: Failed
to instantiate type foo.RCPAppender
	at 	at
ch.qos.logback.core.util.OptionHelper.instantiateByClassName(OptionHelper.
java:54)
	at 	at
ch.qos.logback.core.util.OptionHelper.instantiateByClassName(OptionHelper.
java:32)
	at 	at
ch.qos.logback.core.joran.action.AppenderAction.begin(AppenderAction.java:
54)
	at 	at
ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java
:276)
	at 	at
ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:14
8)
	at 	at
ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:13
0)
	at 	at
ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)
	at 	at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigura
tor.java:147)
	at 	at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigura
tor.java:133)
	at 	at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigura
tor.java:96)
	at 	at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigura
tor.java:55)
	at 	at
ch.qos.logback.classic.util.ContextInitializer.configureByResource(Context
Initializer.java:75)
	at 	at
ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializ
er.java:148)
	at 	at
org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
	at 	at
org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:54)
	at 	at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
	at 	at
org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)
	at 	at
org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:279)
	at 	at
org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:252)
	at 	at
org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:265)
	at 	at foo.MyPlugin.<init>(DvtGuardPlugin.java:19)
	at 	at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at 	at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcc
essorImpl.java:39)
	at 	at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstr
uctorAccessorImpl.java:27)
	at 	at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at 	at java.lang.Class.newInstance0(Class.java:355)
	at 	at java.lang.Class.newInstance(Class.java:308)
	at 	at
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivato
r(AbstractBundle.java:151)
	at 	at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleCon
textImpl.java:751)
	at 	at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost
.java:370)
	at 	at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBund
le.java:284)
	at 	at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:417)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.
java:265)
	at 	at
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocal
Class(EclipseLazyStarter.java:106)
	at 	at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(Classp
athManager.java:453)
	at 	at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(De
faultClassLoader.java:216)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.
java:393)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoad
er.java:469)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:
422)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:
410)
	at 	at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(Default
ClassLoader.java:107)
	at 	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:
338)
	at 	at
org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.j
ava:232)
	at 	at
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(Abstract
Bundle.java:1197)
	at 	at
org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecuta
bleExtension(RegistryStrategyOSGI.java:174)
	at 	at
org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExten
sion(ExtensionRegistry.java:904)
	at 	at
org.eclipse.core.internal.registry.ConfigurationElement.createExecutableEx
tension(ConfigurationElement.java:243)
	at 	at
org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecut
ableExtension(ConfigurationElementHandle.java:55)
	at 	at
org.eclipse.core.internal.expressions.PropertyTesterDescriptor.instantiate
(PropertyTesterDescriptor.java:92)
	at 	at
org.eclipse.core.internal.expressions.TypeExtension.findTypeExtender(TypeE
xtension.java:91)
	at 	at
org.eclipse.core.internal.expressions.TypeExtension.findTypeExtender(TypeE
xtension.java:124)
	at 	at
org.eclipse.core.internal.expressions.TypeExtension.findTypeExtender(TypeE
xtension.java:124)
	at 	at
org.eclipse.core.internal.expressions.TypeExtension.findTypeExtender(TypeE
xtension.java:124)
	at 	at
org.eclipse.core.internal.expressions.TypeExtensionManager.getProperty(Typ
eExtensionManager.java:114)
	at 	at
org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpressi
on.java:96)
	at 	at
org.eclipse.ui.internal.services.EvaluationResultCache.evaluate(Evaluation
ResultCache.java:74)
	at 	at
org.eclipse.ui.internal.services.ExpressionAuthority.evaluate(ExpressionAu
thority.java:165)
	at 	at
org.eclipse.ui.internal.services.EvaluationAuthority.addEvaluationListener
(EvaluationAuthority.java:79)
	at 	at
org.eclipse.ui.internal.services.EvaluationService.addEvaluationListener(E
valuationService.java:47)
	at 	at
org.eclipse.ui.internal.activities.MutableActivityManager.updateActivity(M
utableActivityManager.java:736)
	at 	at
org.eclipse.ui.internal.activities.MutableActivityManager.getActivity(Muta
bleActivityManager.java:153)
	at 	at
org.eclipse.ui.internal.activities.ProxyActivityManager.getActivity(ProxyA
ctivityManager.java:56)
	at 	at
org.eclipse.ui.internal.ActivityPersistanceHelper.loadEnabledStates(Activi
tyPersistanceHelper.java:236)
	at 	at
org.eclipse.ui.internal.ActivityPersistanceHelper.loadEnabledStates(Activi
tyPersistanceHelper.java:206)
	at 	at
org.eclipse.ui.internal.ActivityPersistanceHelper.<init>(ActivityPersistan
ceHelper.java:154)
	at 	at
org.eclipse.ui.internal.ActivityPersistanceHelper.getInstance(ActivityPers
istanceHelper.java:122)
	at 	at
org.eclipse.ui.internal.Workbench.init(Workbench.java:1510)
	at 	at
org.eclipse.ui.internal.Workbench.access$34(Workbench.java:1472)
	at 	at
org.eclipse.ui.internal.Workbench$62.run(Workbench.java:2536)
Caused by: java.lang.ClassNotFoundException: foo.RCPAppender
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoad
er.java:506)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:
422)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:
410)
	at 	at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(Default
ClassLoader.java:107)
	at 	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at 	at
ch.qos.logback.core.util.OptionHelper.instantiateByClassName(OptionHelper.
java:46)
	at 	... 69 common frames omitted
14:14:04,992 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter at 18:72 -
ActionException in Action for tag [appender]
ch.qos.logback.core.joran.spi.ActionException:
ch.qos.logback.core.util.DynamicClassLoadingException: Failed to
instantiate type foo.RCPAppender
	at ch.qos.logback.core.joran.spi.ActionException:
ch.qos.logback.core.util.DynamicClassLoadingException: Failed to
instantiate type foo.RCPAppender
	at 	at
ch.qos.logback.core.joran.action.AppenderAction.begin(AppenderAction.java:
82)
	at 	at
ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java
:276)
	at 	at
ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:14
8)
	at 	at
ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:13
0)
	at 	at
ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)
	at 	at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigura
tor.java:147)
	at 	at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigura
tor.java:133)
	at 	at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigura
tor.java:96)
	at 	at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigura
tor.java:55)
	at 	at
ch.qos.logback.classic.util.ContextInitializer.configureByResource(Context
Initializer.java:75)
	at 	at
ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializ
er.java:148)
	at 	at
org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
	at 	at
org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:54)
	at 	at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
	at 	at
org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)
	at 	at
org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:279)
	at 	at
org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:252)
	at 	at
org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:265)
	at 	at foo.MyPlugin.<init>(DvtGuardPlugin.java:19)
	at 	at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at 	at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcc
essorImpl.java:39)
	at 	at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstr
uctorAccessorImpl.java:27)
	at 	at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at 	at java.lang.Class.newInstance0(Class.java:355)
	at 	at java.lang.Class.newInstance(Class.java:308)
	at 	at
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivato
r(AbstractBundle.java:151)
	at 	at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleCon
textImpl.java:751)
	at 	at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost
.java:370)
	at 	at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBund
le.java:284)
	at 	at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:417)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.
java:265)
	at 	at
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocal
Class(EclipseLazyStarter.java:106)
	at 	at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(Classp
athManager.java:453)
	at 	at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(De
faultClassLoader.java:216)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.
java:393)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoad
er.java:469)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:
422)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:
410)
	at 	at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(Default
ClassLoader.java:107)
	at 	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:
338)
	at 	at
org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.j
ava:232)
	at 	at
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(Abstract
Bundle.java:1197)
	at 	at
org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecuta
bleExtension(RegistryStrategyOSGI.java:174)
	at 	at
org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExten
sion(ExtensionRegistry.java:904)
	at 	at
org.eclipse.core.internal.registry.ConfigurationElement.createExecutableEx
tension(ConfigurationElement.java:243)
	at 	at
org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecut
ableExtension(ConfigurationElementHandle.java:55)
	at 	at
org.eclipse.core.internal.expressions.PropertyTesterDescriptor.instantiate
(PropertyTesterDescriptor.java:92)
	at 	at
org.eclipse.core.internal.expressions.TypeExtension.findTypeExtender(TypeE
xtension.java:91)
	at 	at
org.eclipse.core.internal.expressions.TypeExtension.findTypeExtender(TypeE
xtension.java:124)
	at 	at
org.eclipse.core.internal.expressions.TypeExtension.findTypeExtender(TypeE
xtension.java:124)
	at 	at
org.eclipse.core.internal.expressions.TypeExtension.findTypeExtender(TypeE
xtension.java:124)
	at 	at
org.eclipse.core.internal.expressions.TypeExtensionManager.getProperty(Typ
eExtensionManager.java:114)
	at 	at
org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpressi
on.java:96)
	at 	at
org.eclipse.ui.internal.services.EvaluationResultCache.evaluate(Evaluation
ResultCache.java:74)
	at 	at
org.eclipse.ui.internal.services.ExpressionAuthority.evaluate(ExpressionAu
thority.java:165)
	at 	at
org.eclipse.ui.internal.services.EvaluationAuthority.addEvaluationListener
(EvaluationAuthority.java:79)
	at 	at
org.eclipse.ui.internal.services.EvaluationService.addEvaluationListener(E
valuationService.java:47)
	at 	at
org.eclipse.ui.internal.activities.MutableActivityManager.updateActivity(M
utableActivityManager.java:736)
	at 	at
org.eclipse.ui.internal.activities.MutableActivityManager.getActivity(Muta
bleActivityManager.java:153)
	at 	at
org.eclipse.ui.internal.activities.ProxyActivityManager.getActivity(ProxyA
ctivityManager.java:56)
	at 	at
org.eclipse.ui.internal.ActivityPersistanceHelper.loadEnabledStates(Activi
tyPersistanceHelper.java:236)
	at 	at
org.eclipse.ui.internal.ActivityPersistanceHelper.loadEnabledStates(Activi
tyPersistanceHelper.java:206)
	at 	at
org.eclipse.ui.internal.ActivityPersistanceHelper.<init>(ActivityPersistan
ceHelper.java:154)
	at 	at
org.eclipse.ui.internal.ActivityPersistanceHelper.getInstance(ActivityPers
istanceHelper.java:122)
	at 	at
org.eclipse.ui.internal.Workbench.init(Workbench.java:1510)
	at 	at
org.eclipse.ui.internal.Workbench.access$34(Workbench.java:1472)
	at 	at
org.eclipse.ui.internal.Workbench$62.run(Workbench.java:2536)
Caused by: ch.qos.logback.core.util.DynamicClassLoadingException: Failed
to instantiate type foo.RCPAppender
	at 	at
ch.qos.logback.core.util.OptionHelper.instantiateByClassName(OptionHelper.
java:54)
	at 	at
ch.qos.logback.core.util.OptionHelper.instantiateByClassName(OptionHelper.
java:32)
	at 	at
ch.qos.logback.core.joran.action.AppenderAction.begin(AppenderAction.java:
54)
	at 	... 67 common frames omitted
Caused by: java.lang.ClassNotFoundException: foo.RCPAppender
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoad
er.java:506)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:
422)
	at 	at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:
410)
	at 	at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(Default
ClassLoader.java:107)
	at 	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at 	at
ch.qos.logback.core.util.OptionHelper.instantiateByClassName(OptionHelper.
java:46)
	at 	... 69 common frames omitted



No I don't know how to fix it. I was hoping that I wasn't the first person
in the world to write an appender for an Ecipse plug-in and that someone
might have worked it out already :)

BR David

-----Original Message-----
From: logback-user-bounces at qos.ch [mailto:logback-user-bounces at qos.ch] On
Behalf Of ceki
Sent: den 24 maj 2012 14:43
To: logback users list
Subject: Re: [logback-user] RCP


Anyway, even without the stack trace, we can assume that your custom
appender will be instantiated by calling the
instantiateByClassName(String, Class, Context) method in OptionHelper
(line 36). This method assumes that you want to use the class loader
which loaded the current logback context to be used. (This is usually
the same class loader that loaded all other logback classes as well.)
Thus, you have to make sure that the said class loader can load
foo.RCPAppender. Can you do that?

-- 
Ceki
http://twitter.com/#!/ceki

On 24.05.2012 14:20, David Virdefors wrote:
> Hi,
>
> It seems like there is no built in support for logging from within an
> Eclipse RCP plug-in. So I wrote my own appender and pointed to it from
> my logback.xml
>
> 14:14:04,992 |-ERROR in ch.qos.logback.core.joran.action.AppenderAction
> - Could not create an Appender of type [foo.RCPAppender].
> ch.qos.logback.core.util.DynamicClassLoadingException: Failed to
> instantiate type se.ericsson.baseband.logging.RCPAppender
>
> at ch.qos.logback.core.util.DynamicClassLoadingException: Failed to
> instantiate type foo.RCPAppender
>
> I've seen other people who have trouble with this when using ecilpse
> plug-ins and bundles due to different class loaders. I have however not
> found any proper solution to this.
>
> How would I make logback find my appender?
>
> BR David
>
> *From:*logback-user-bounces at qos.ch [mailto:logback-user-bounces at qos.ch]
> *On Behalf Of *David Virdefors
> *Sent:* den 24 maj 2012 11:41
> *To:* logback-user at qos.ch
> *Subject:* [logback-user] RCP
>
> Hi,
>
> I'm developing Eclipse RCP plug-ins. Is it possible to make logback log
> to the existnig workspace log, so that the logs show up in the "Error
> Log" view in the GUI?
>
> BR David
>

_______________________________________________
Logback-user mailing list
Logback-user at qos.ch
http://mailman.qos.ch/mailman/listinfo/logback-user


More information about the Logback-user mailing list