Re: [jetty-user] Usage of JUL-to-SLF4J

Joakim Erdfelt <[email protected]> Thu, 2 Aug 2012 08:52:25 -0700
Newsgroups gmane.comp.java.jetty.support
Message-ID <CAG4zZZC-hXuXxoSCxSAF6Hc08GwJcAMU5BnV5sf=yi-W9kQw9g@mail.gmail.com>
--f46d042f9f92dc47a004c64a65f2
Content-Type: text/plain; charset=ISO-8859-1

Just remembered a 3rd option as well.

One outlined here ... https://github.com/jetty-project/jetty-and-jul-example

How this works is ...

   1. Add etc/jetty-jul.xml<https://github.com/jetty-project/jetty-and-jul-example/blob/master/jetty-distro-with-custom-jul/src/main/config/etc/jetty-jul.xml>to
the start.ini initialization
   2. It initializes a
JavaUtilLoggingBean<https://github.com/jetty-project/jetty-and-jul-example/blob/master/jetty-jul-custom-handler/src/main/java/org/eclipse/jetty/examples/logging/JavaUtilLoggingBean.java>that
is added to the Server instance
   3. The JavaUtilLoggingBean<https://github.com/jetty-project/jetty-and-jul-example/blob/master/jetty-jul-custom-handler/src/main/java/org/eclipse/jetty/examples/logging/JavaUtilLoggingBean.java>
adds
   the appropriate JUL Handlers to the active LogManager on start of the
   Server.


--
Joakim Erdfelt <[email protected]>
www.webtide.com
Developer advice, services and support
from the Jetty & CometD experts.



On Thu, Aug 2, 2012 at 8:30 AM, Gaim <[email protected]> wrote:

> Hi,
>
> I would like to jetty log using SLF4J. It works for direct logging through
> SLF4J and for logging using apache logging commons but it doesn't work for
> java.util.logging. I am starting jetty from maven plugin and I use the
> plugin version 6.1.26. I have jul-to-slf4j in dependencies in a version
> 1.6.6. The JUL logging properties contains only definition of
> org.slf4j.bridge.SLF4JBridgeHandler to be a handler.
>
> My problem is, that the Jetty still says, that
>
> Can't load log handler "org.slf4j.bridge.SLF4JBridgeHandler"
> java.lang.ClassNotFoundException: org.slf4j.bridge.SLF4JBridgeHandler
> java.lang.ClassNotFoundException: org.slf4j.bridge.SLF4JBridgeHandler
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>         at java.util.logging.LogManager$7.run(LogManager.java:910)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at
> java.util.logging.LogManager.initializeGlobalHandlers(LogManager.java:903)
>         at java.util.logging.LogManager.access$900(LogManager.java:129)
>         at
> java.util.logging.LogManager$RootLogger.getHandlers(LogManager.java:1010)
>         at java.util.logging.Logger.log(Logger.java:454)
>         at java.util.logging.Logger.doLog(Logger.java:480)
>         at java.util.logging.Logger.logp(Logger.java:596)
>         at org.zkoss.util.logging.Log.log(Log.java:379)
>         at org.zkoss.util.logging.Log.debug(Log.java:711)
>         at org.zkoss.zk.ui.http.WebManager.<init>(WebManager.java:108)
>         at
>
> org.zkoss.zk.ui.http.HttpSessionListener23.contextInitialized(HttpSessionListener23.java:140)
>         at
>
> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:549)
>         at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>         at
>
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
>         at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
>         at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
>         at
>
> org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:115)
>         at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>         at
>
> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>         at
>
> org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
>         at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>         at
>
> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>         at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>         at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
>         at org.mortbay.jetty.Server.doStart(Server.java:224)
>         at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>         at
>
> org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132)
>         at
>
> org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:454)
>         at
>
> org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:396)
>         at
>
> org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.java:210)
>         at
> org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:184)
>         at
>
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
>         at
>
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
>         at
>
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
>         at
>
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)
>         at
>
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
>         at
>
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
>         at
>
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
>         at
> org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>         at
> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>         at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
>
>
>
>
>
>
> and I don't know why, because all necessary slf4j modules are defined in
> dependencies.
>
> I would like ask for any help that bring me to working bridged logging from
> JUL to SLF4J. It seems to be a classloader problem.
>
> Thanks a lot,
> Karel
>
>
>
> --
> View this message in context:
> http://jetty.4.n6.nabble.com/Usage-of-JUL-to-SLF4J-tp4958903.html
> Sent from the Jetty Support mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>
>

--f46d042f9f92dc47a004c64a65f2
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Just remembered a 3rd option as well.<div><br></div><div>One outlined here =
...=A0<a href=3D"https://github.com/jetty-project/jetty-and-jul-example">ht=
tps://github.com/jetty-project/jetty-and-jul-example</a></div><div><br></di=
v>
<div>How this works is ...</div><div><ol><li>Add <a href=3D"https://github.=
com/jetty-project/jetty-and-jul-example/blob/master/jetty-distro-with-custo=
m-jul/src/main/config/etc/jetty-jul.xml">etc/jetty-jul.xml</a> to the start=
.ini initialization</li>
<li>It initializes a <a href=3D"https://github.com/jetty-project/jetty-and-=
jul-example/blob/master/jetty-jul-custom-handler/src/main/java/org/eclipse/=
jetty/examples/logging/JavaUtilLoggingBean.java">JavaUtilLoggingBean</a> th=
at is added to the Server instance</li>
<li>The=A0<a href=3D"https://github.com/jetty-project/jetty-and-jul-example=
/blob/master/jetty-jul-custom-handler/src/main/java/org/eclipse/jetty/examp=
les/logging/JavaUtilLoggingBean.java">JavaUtilLoggingBean</a>=A0adds the ap=
propriate JUL Handlers to the active LogManager on start of the Server.</li=
>
</ol></div><div><br clear=3D"all"><div>--</div><div>Joakim Erdfelt &lt;<a h=
ref=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a>&=
gt;</div><div><a href=3D"http://www.webtide.com/" target=3D"_blank">www.web=
tide.com</a></div>
<div><span>Developer advice, services and support</span><br><span>from the =
Jetty &amp; CometD experts.</span></div><br>
<br><br><div class=3D"gmail_quote">On Thu, Aug 2, 2012 at 8:30 AM, Gaim <sp=
an dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]" target=3D"_blan=
k">[email protected]</a>&gt;</span> wrote:<br><blockquote class=3D"gmai=
l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left=
:1ex">
Hi,<br>
<br>
I would like to jetty log using SLF4J. It works for direct logging through<=
br>
SLF4J and for logging using apache logging commons but it doesn&#39;t work =
for<br>
java.util.logging. I am starting jetty from maven plugin and I use the<br>
plugin version 6.1.26. I have jul-to-slf4j in dependencies in a version<br>
1.6.6. The JUL logging properties contains only definition of<br>
org.slf4j.bridge.SLF4JBridgeHandler to be a handler.<br>
<br>
My problem is, that the Jetty still says, that<br>
<br>
Can&#39;t load log handler &quot;org.slf4j.bridge.SLF4JBridgeHandler&quot;<=
br>
java.lang.ClassNotFoundException: org.slf4j.bridge.SLF4JBridgeHandler<br>
java.lang.ClassNotFoundException: org.slf4j.bridge.SLF4JBridgeHandler<br>
=A0 =A0 =A0 =A0 at java.net.URLClassLoader$1.run(URLClassLoader.java:200)<b=
r>
=A0 =A0 =A0 =A0 at java.security.AccessController.doPrivileged(Native Metho=
d)<br>
=A0 =A0 =A0 =A0 at java.net.URLClassLoader.findClass(URLClassLoader.java:18=
8)<br>
=A0 =A0 =A0 =A0 at java.lang.ClassLoader.loadClass(ClassLoader.java:307)<br=
>
=A0 =A0 =A0 =A0 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java=
:301)<br>
=A0 =A0 =A0 =A0 at java.lang.ClassLoader.loadClass(ClassLoader.java:252)<br=
>
=A0 =A0 =A0 =A0 at java.util.logging.LogManager$7.run(LogManager.java:910)<=
br>
=A0 =A0 =A0 =A0 at java.security.AccessController.doPrivileged(Native Metho=
d)<br>
=A0 =A0 =A0 =A0 at<br>
java.util.logging.LogManager.initializeGlobalHandlers(LogManager.java:903)<=
br>
=A0 =A0 =A0 =A0 at java.util.logging.LogManager.access$900(LogManager.java:=
129)<br>
=A0 =A0 =A0 =A0 at<br>
java.util.logging.LogManager$RootLogger.getHandlers(LogManager.java:1010)<b=
r>
=A0 =A0 =A0 =A0 at java.util.logging.Logger.log(Logger.java:454)<br>
=A0 =A0 =A0 =A0 at java.util.logging.Logger.doLog(Logger.java:480)<br>
=A0 =A0 =A0 =A0 at java.util.logging.Logger.logp(Logger.java:596)<br>
=A0 =A0 =A0 =A0 at org.zkoss.util.logging.Log.log(Log.java:379)<br>
=A0 =A0 =A0 =A0 at org.zkoss.util.logging.Log.debug(Log.java:711)<br>
=A0 =A0 =A0 =A0 at org.zkoss.zk.ui.http.WebManager.&lt;init&gt;(WebManager.=
java:108)<br>
=A0 =A0 =A0 =A0 at<br>
org.zkoss.zk.ui.http.HttpSessionListener23.contextInitialized(HttpSessionLi=
stener23.java:140)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:5=
49)<br>
=A0 =A0 =A0 =A0 at org.mortbay.jetty.servlet.Context.startContext(Context.j=
ava:136)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282=
)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)<b=
r>
=A0 =A0 =A0 =A0 at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppCon=
text.java:499)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebA=
ppContext.java:115)<br>
=A0 =A0 =A0 =A0 at org.mortbay.component.AbstractLifeCycle.start(AbstractLi=
feCycle.java:50)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:=
152)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCo=
llection.java:156)<br>
=A0 =A0 =A0 =A0 at org.mortbay.component.AbstractLifeCycle.start(AbstractLi=
feCycle.java:50)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:=
152)<br>
=A0 =A0 =A0 =A0 at org.mortbay.component.AbstractLifeCycle.start(AbstractLi=
feCycle.java:50)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)<b=
r>
=A0 =A0 =A0 =A0 at org.mortbay.jetty.Server.doStart(Server.java:224)<br>
=A0 =A0 =A0 =A0 at org.mortbay.component.AbstractLifeCycle.start(AbstractLi=
feCycle.java:50)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:1=
32)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.jav=
a:454)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:3=
96)<br>
=A0 =A0 =A0 =A0 at<br>
org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.=
java:210)<br>
=A0 =A0 =A0 =A0 at org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6Run=
Mojo.java:184)<br>
=A0 =A0 =A0 =A0 at<br>
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManag=
er.java:490)<br>
=A0 =A0 =A0 =A0 at<br>
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLif=
ecycleExecutor.java:694)<br>
=A0 =A0 =A0 =A0 at<br>
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(D=
efaultLifecycleExecutor.java:569)<br>
=A0 =A0 =A0 =A0 at<br>
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLife=
cycleExecutor.java:539)<br>
=A0 =A0 =A0 =A0 at<br>
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFai=
lures(DefaultLifecycleExecutor.java:387)<br>
=A0 =A0 =A0 =A0 at<br>
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(Def=
aultLifecycleExecutor.java:348)<br>
=A0 =A0 =A0 =A0 at<br>
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycl=
eExecutor.java:180)<br>
=A0 =A0 =A0 =A0 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.jav=
a:328)<br>
=A0 =A0 =A0 =A0 at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:=
138)<br>
=A0 =A0 =A0 =A0 at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)<br=
>
=A0 =A0 =A0 =A0 at org.apache.maven.cli.compat.CompatibleMain.main(Compatib=
leMain.java:60)<br>
=A0 =A0 =A0 =A0 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Meth=
od)<br>
=A0 =A0 =A0 =A0 at<br>
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3=
9)<br>
=A0 =A0 =A0 =A0 at<br>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp=
l.java:25)<br>
=A0 =A0 =A0 =A0 at java.lang.reflect.Method.invoke(Method.java:597)<br>
=A0 =A0 =A0 =A0 at org.codehaus.classworlds.Launcher.launchEnhanced(Launche=
r.java:315)<br>
=A0 =A0 =A0 =A0 at org.codehaus.classworlds.Launcher.launch(Launcher.java:2=
55)<br>
=A0 =A0 =A0 =A0 at org.codehaus.classworlds.Launcher.mainWithExitCode(Launc=
her.java:430)<br>
=A0 =A0 =A0 =A0 at org.codehaus.classworlds.Launcher.main(Launcher.java:375=
)<br>
<br>
<br>
<br>
<br>
<br>
<br>
and I don&#39;t know why, because all necessary slf4j modules are defined i=
n<br>
dependencies.<br>
<br>
I would like ask for any help that bring me to working bridged logging from=
<br>
JUL to SLF4J. It seems to be a classloader problem.<br>
<br>
Thanks a lot,<br>
Karel<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href=3D"http://jetty.4.n6.nabble.com/Usage=
-of-JUL-to-SLF4J-tp4958903.html" target=3D"_blank">http://jetty.4.n6.nabble=
.com/Usage-of-JUL-to-SLF4J-tp4958903.html</a><br>
Sent from the Jetty Support mailing list archive at Nabble.com.<br>
<br>
---------------------------------------------------------------------<br>
To unsubscribe from this list, please visit:<br>
<br>
=A0 =A0 <a href=3D"http://xircles.codehaus.org/manage_email" target=3D"_bla=
nk">http://xircles.codehaus.org/manage_email</a><br>
<br>
<br>
</blockquote></div><br></div>

--f46d042f9f92dc47a004c64a65f2--