Log4j Mule测井slf4j
这里的mule3.3.x文档()说Mule使用slf4j作为日志的外观。基于此,我希望能够从mule\lib\boot中删除log4j-1.2.16.jar,并添加log4j-api-2.0-beta7、log4j-core-2.0-beta7、log4j-slf4j-impl-2.0-beta7以利用log4j 2.0 当我这样做时,我得到一个异常,即找不到org/apache/log4j/或/rendermap 进一步看,我在Mule安装中找不到slf4j-api.jar,我认为使用slf4j需要一个库 Mule文档是否不正确,或者我是否需要执行其他操作 这是Mule截短的stacktrace。出于某种原因,在wrapper.conf中取消对“-Dmule.verbose.exceptions=true”选项的注释并不能提供完整的堆栈跟踪Log4j Mule测井slf4j,log4j,mule,slf4j,log4j2,Log4j,Mule,Slf4j,Log4j2,这里的mule3.3.x文档()说Mule使用slf4j作为日志的外观。基于此,我希望能够从mule\lib\boot中删除log4j-1.2.16.jar,并添加log4j-api-2.0-beta7、log4j-core-2.0-beta7、log4j-slf4j-impl-2.0-beta7以利用log4j 2.0 当我这样做时,我得到一个异常,即找不到org/apache/log4j/或/rendermap 进一步看,我在Mule安装中找不到slf4j-api.jar,我认为使用slf4
Error in WrapperListener.start callback. java.lang.NoClassDefFoundError: org/apache/log4j/or/RendererMap
java.lang.NoClassDefFoundError: org/apache/log4j/or/RendererMap
at org.apache.log4j.Hierarchy.<init>(Hierarchy.java:97)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:82)
at org.apache.log4j.Logger.getLogger(Logger.java:117)
at org.mule.module.launcher.log4j.ApplicationAwareRepositorySelector.<init>(ApplicationAwareRepositorySelector.java:44)
at org.mule.module.launcher.MuleContainer.<clinit>(MuleContainer.java:85)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.mule.module.reboot.MuleContainerWrapper.start(MuleContainerWrapper.java:54)
at org.tanukisoftware.wrapper.WrapperManager$12.run(WrapperManager.java:2788)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.or.RendererMap
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 11 more
<-- Wrapper Stopped
WrapperListener.start回调中出现错误。java.lang.NoClassDefFoundError:org/apache/log4j/or/renderMap
java.lang.NoClassDefFoundError:org/apache/log4j/or/renderMap
位于org.apache.log4j.Hierarchy.(Hierarchy.java:97)
登录org.apache.log4j.LogManager.(LogManager.java:82)
位于org.apache.log4j.Logger.getLogger(Logger.java:117)
位于org.mule.module.launcher.log4j.ApplicationWareRepositorySelector。(ApplicationWareRepositorySelector.java:44)
位于org.mule.module.launcher.MuleContainer(MuleContainer.java:85)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:525)
位于org.mule.module.reboot.mulecontainerrapper.start(mulecontainerrapper.java:54)
位于org.tanukisoftware.wrapper.WrapperManager$12.run(WrapperManager.java:2788)
原因:java.lang.ClassNotFoundException:org.apache.log4j.or.renderMap
在java.net.URLClassLoader$1.run(URLClassLoader.java:366)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:423)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 还有11个
您可以发布完整的stacktrace吗?slf4j也用作外观,实际的日志记录由log4j appenders完成。但我仍然不明白为什么它依赖于log4j中的特定类。我将把stacktrace添加到上面的消息中。问题是,鉴于我在Mule安装中既没有看到slf4j-api.jar(SLF库)也没有看到slf4j-log4j12-1.7.5.jar(log4j绑定库),我想知道是否正在使用SLF。如果不是…如果它直接针对log4j,那么错误是有意义的。打开
mule-module-logging-3.3.1.jar
:您将看到嵌入的SLF4J类。Hmmm,因为该库中有其他类(可能是mule记录所需的),而且SLF只需要一个绑定库,我不明白Mule对SLF的使用是如何被设计成允许替代其他日志机制的……我认为这是SLF的要点之一。除非他们希望我编辑一个分布式库,这不吸引他们。