Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Log4j Mule测井slf4j_Log4j_Mule_Slf4j_Log4j2 - Fatal编程技术网

Log4j Mule测井slf4j

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

这里的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”选项的注释并不能提供完整的堆栈跟踪

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的要点之一。除非他们希望我编辑一个分布式库,这不吸引他们。