Class of appender should be<br> logback.eclipseappender.EclipseAppender<br><br>N<br><br><div class="gmail_quote">On Tue, Jul 13, 2010 at 11:20 AM, Frank Grimm <span dir="ltr">&lt;<a href="mailto:grimmfrank@googlemail.com">grimmfrank@googlemail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Dear mailing list,<br>
<br>
I&#39;m trying to use logback (via its slf4j API) in an Eclipe/OSGi environment. More specifically I&#39;m trying to write a logback appender that redirects log events to the Eclipse logging mechanism (org.eclipse.core.runtime.ILog).<br>

<br>
So the first thing I did was to create an Eclipse plugin/PDE project for the custom appender. In the project, the following class was added:<br>
<br>
package logback.eclipseappender;<br>
<br>
import ch.qos.logback.core.AppenderBase;<br>
<br>
public class EclipseAppender extends AppenderBase&lt;Object&gt; {<br>
        @Override<br>
        protected void append(Object eventObject) {<br>
                // TODO<br>
        }<br>
}<br>
<br>
The a logback configuration that made use of the custom appender was added to the project, too:<br>
<br>
&lt;configuration&gt;<br>
        &lt;appender<br>
                name=&quot;eclipse&quot;<br>
                class=&quot;eclipseappender.EclipseAppender&quot;&gt;<br>
                &lt;layout class=&quot;ch.qos.logback.classic.PatternLayout&quot;&gt;<br>
                        &lt;Pattern&gt;%d %p %t %c - %m%n&lt;/Pattern&gt;<br>
                &lt;/layout&gt;<br>
        &lt;/appender&gt;<br>
        <br>
        &lt;root level=&quot;debug&quot;&gt;<br>
                &lt;appender-ref ref=&quot;eclipse&quot;/&gt;<br>
        &lt;/root&gt;<br>
&lt;/configuration&gt;<br>
<br>
When the custom appender plugin/bundle is started in a new Eclipse runtime environment, the appender&#39;s class cannot be found (see stacktrace below).<br>
<br>
I&#39;ve read in another post (DynamicClassLoadingException - How does class loading in logback works?) that logback might require the logback jar files and the custom appender jar file to be bundled together. But bundling them does not make sense in OSGi environments since single bundles for each of logback&#39;s components (core, classic, slf4j API) and custom appenders should be used.<br>

<br>
Is there a way to make logback see the appender class event if it&#39;s in another jar/bundle?<br>
<br>
Thanks,<br>
Frank<br>
<br>
11:00:58,210 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [eclipseappender.EclipseAppender]<br>
11:00:58,211 |-ERROR in ch.qos.logback.core.joran.action.AppenderAction - Could not create an Appender of type [eclipseappender.EclipseAppender]. ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type eclipseappender.EclipseAppender<br>

        at ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type eclipseappender.EclipseAppender<br>
        at      at ch.qos.logback.core.util.OptionHelper.instantiateByClassName(OptionHelper.java:53)<br>
<br>
[...]<br>
<br>
Caused by: java.lang.ClassNotFoundException: eclipseappender.EclipseAppender<br>
        at      at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)<br>
        at      at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)<br>
        at      at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)<br>
        at      at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)<br>
        at      at java.lang.ClassLoader.loadClass(ClassLoader.java:248)<br>
        at      at ch.qos.logback.core.util.OptionHelper.instantiateByClassName(OptionHelper.java:45)<br>
        at      ... 52 common frames omitted<br>
_______________________________________________<br>
Logback-user mailing list<br>
<a href="mailto:Logback-user@qos.ch" target="_blank">Logback-user@qos.ch</a><br>
<a href="http://qos.ch/mailman/listinfo/logback-user" target="_blank">http://qos.ch/mailman/listinfo/logback-user</a><br>
</blockquote></div><br>