Java 无法从log4j2客户端GUI连接到我的应用程序

Java 无法从log4j2客户端GUI连接到我的应用程序,java,jmx,log4j2,jconsole,connectionexception,Java,Jmx,Log4j2,Jconsole,Connectionexception,OS:OSX小牛队 IDE:Netbeans 8.0(构建201403101706) Java:1.7.0_45;Java HotSpot(TM)64位服务器VM 24.45-b08 log4j:2.0rc1 无论是作为JConsole插件运行还是作为独立应用程序运行,我都无法从log4j2客户端GUI进行连接 以下是我在尝试中使用的详细信息: 我的应用程序 -使用以下VM参数从Netbeans运行: -Djava.security.policy=~/Downloads/policy -Dja

OS:OSX小牛队
IDE:Netbeans 8.0(构建201403101706)
Java:1.7.0_45;Java HotSpot(TM)64位服务器VM 24.45-b08
log4j:2.0rc1

无论是作为JConsole插件运行还是作为独立应用程序运行,我都无法从log4j2客户端GUI进行连接

以下是我在尝试中使用的详细信息:

我的应用程序
-使用以下VM参数从Netbeans运行:

-Djava.security.policy=~/Downloads/policy -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
  • 我尝试过各种端口:901010993345等等
  • 我的策略文件的内容(我已允许所有内容):

    格兰特{
    权限java.security.AllPermission;
    };


将客户端GUI作为JConsole插件运行
-我用来执行的命令:

jconsole -pluginpath ~/Downloads/Software/Development/Java/log4j/2.0/rc1/apache-log4j-2.0-rc1-bin/log4j-core-2.0-rc1.jar:~/Downloads/Software/Development/Java/log4j/2.0/rc1/apache-log4j-2.0-rc1-bin/log4j-jmx-gui-2.0-rc1.jar 
JConsole启动时没有问题,但我没有看到手册中的Log4j2选项卡()

将客户端GUI作为独立应用程序运行
-我用来执行的命令(我从JAR所在的目录运行此命令:

java -cp log4j-core-2.0-rc1.jar:log4j-jmx-gui-2.0-rc1.jar org.apache.logging.log4j.jmx.gui.ClientGUI localhost:9010
-但是,我得到一个java.lang.NoClassDefFoundError:

线程“AWT-EventQueue-0”java.lang.NoClassDefFoundError中的异常:org/apache/logging/log4j/status/StatusLogger 位于org.apache.logging.log4j.core.jmx.Server.(Server.java:59) 位于org.apache.logging.log4j.jmx.gui.Client.getStatusLoggerAdmin(Client.java:143) 位于org.apache.logging.log4j.jmx.gui.ClientGUI.addWidgetForLoggerContext(ClientGUI.java:109) 位于org.apache.logging.log4j.jmx.gui.ClientGUI.populateWidgets(ClientGUI.java:98) 位于org.apache.logging.log4j.jmx.gui.ClientGUI(ClientGUI.java:81) 位于org.apache.logging.log4j.jmx.gui.ClientGUI$2.run(ClientGUI.java:276) 在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)中 位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) 在java.awt.EventQueue.access$200(EventQueue.java:103) 位于java.awt.EventQueue$3.run(EventQueue.java:694) 在java.awt.EventQueue$3.run(EventQueue.java:692) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 位于java.awt.EventQueue.dispatchEvent(EventQueue.java:703) 位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 在java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:161) 位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:150) 位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 在java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 原因:java.lang.ClassNotFoundException:org.apache.logging.log4j.status.StatusLogger 在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:425) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:358) …还有20个 如有任何建议/指导,将不胜感激!提前感谢


干杯。

我已经更新了源代码存储库中的文档,以澄清必须将log4j api jar添加到jconsole插件路径。手册页面将在下一版本(rc2)中正确显示这一点


感谢您的报告。

我在ASF JIRA上记录了一张记录单。根据Ralph的反馈,我在类路径中包含了log4j-api-2.0-rc1.jar,因此能够启动独立应用程序。但是,我只看到“LoggerContext:sun.misc.Launcher”$AppClassLoader@3b26456a,而不是“LoggerContext:AsyncLoggerContext”,第二行的StatusLogger选项卡在我单击Configuration选项卡的Reconfigure from位置后显示一系列警告(最初为空)。我现在可以启动独立客户端和JConsole插件。但是,在这两种情况下,我都看到“LoggerContext:sun.misc.Launcher$AppClassLoader@3b26456a",而不是“LoggerContext:AsyncLoggerContext”另外,StatusLogger选项卡下并没有显示任何内容。当我单击Configuration选项卡并单击Reconfigure from Location时,StatusLogger选项卡会刷新一系列警告:2014-06-11 13:25:32077 WARN无法检查类“org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapAttributeConverter.class”由于java.lang.noClassDefFounder出现错误,消息为:javax/persistence/AttributeConverter 2014-06-11 13:25:32079由于消息为:com/fasterxml/jackson/core/type/TypeReferenceAs per Remk,WARN无法检查类“org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapJsonAttributeConverter$1.class”o在log4j2团队中,客户端GUI用于监控和配置log4j配置(而不是监控实际的日志事件)。因此,这不是问题。
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/logging/log4j/status/StatusLogger
        at org.apache.logging.log4j.core.jmx.Server.<clinit>(Server.java:59)
        at org.apache.logging.log4j.jmx.gui.Client.getStatusLoggerAdmin(Client.java:143)
        at org.apache.logging.log4j.jmx.gui.ClientGUI.addWidgetForLoggerContext(ClientGUI.java:109)
        at org.apache.logging.log4j.jmx.gui.ClientGUI.populateWidgets(ClientGUI.java:98)
        at org.apache.logging.log4j.jmx.gui.ClientGUI.<init>(ClientGUI.java:81)
        at org.apache.logging.log4j.jmx.gui.ClientGUI$2.run(ClientGUI.java:276)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
        at java.awt.EventQueue.access$200(EventQueue.java:103)
        at java.awt.EventQueue$3.run(EventQueue.java:694)
        at java.awt.EventQueue$3.run(EventQueue.java:692)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.status.StatusLogger
        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:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 20 more