logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Colin Froggatt (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LOG4J2-443) log4j2 LoggerContext not showing up in JMX Gui or JConsole
Date Wed, 12 Feb 2014 13:30:19 GMT

    [ https://issues.apache.org/jira/browse/LOG4J2-443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13899083#comment-13899083
] 

Colin Froggatt commented on LOG4J2-443:
---------------------------------------

Hi. First of all, I forgot to apologise for the time its taken me to get back to this.  I
have been assigned on different work for some time.

I found an 2.0-rc1 build (noted in a diff bug) here :
{{https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/}}

I grabbed the core and jmx-gui jars.  My test program runs up ok, but as soon as I try to
start JConsole with the Plugin or try to start the JMX Gui standalone, I get the following
error:

cmd line: 
{code}
C:\Users\cfrogatt\Downloads>java -cp C:\Users\cfrogatt\Downloads\log4j-core-2.0-rc1.jar;C:\Users\cfrogatt\Downloads\log4j-jmx-gui-2.0-rc1.jar
org.apache.logging.log4j.jmx.gui.ClientGUI localhost:33445
{code}

Exception from standalone version:
{code:java}
java.lang.reflect.UndeclaredThrowableException
        at com.sun.proxy.$Proxy0.getObjectName(Unknown Source)
        at org.apache.logging.log4j.jmx.gui.ClientGUI.addWidgetForLoggerContext(ClientGUI.java:105)
        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:209)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
        at java.awt.EventQueue.access$400(EventQueue.java:81)
        at java.awt.EventQueue$2.run(EventQueue.java:633)
        at java.awt.EventQueue$2.run(EventQueue.java:631)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:642)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: javax.management.AttributeNotFoundException: No such attribute: ObjectName
        at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:63)
        at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:218)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:666)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:639)
        at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1431)
        at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:74)
        at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1295)
        at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1387)
        at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:630)
        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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:303)
        at sun.rmi.transport.Transport$1.run(Transport.java:159)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
        at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
        at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
        at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
        at javax.management.remote.rmi.RMIConnectionImpl_Stub.getAttribute(Unknown Source)
        at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:878)
        at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:263)
        ... 19 more
{code}



> log4j2 LoggerContext not showing up in JMX Gui or JConsole
> ----------------------------------------------------------
>
>                 Key: LOG4J2-443
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-443
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: JMX
>    Affects Versions: 2.0-beta9
>         Environment: Java 1.6.0_45-b06 on win7 (same behaviour on Java 7)
>            Reporter: Colin Froggatt
>            Assignee: Remko Popma
>             Fix For: 2.0-rc1, 2.0
>
>
> This issue raised after request to do so by Remko in [StackOverflow question |http://stackoverflow.com/questions/19816528/log4j2-loggercontext-not-showing-up-in-jmx-gui-or-jconsole].

> I am trying to configure log4j2 so that I can access the loggers via JMX and change their
log levels.  
> However, when I hook everything up, none of the loggers show up in the JMX tree (or log4j-jmx-gui)
as shown in the [log4j2 JMX docs](http://logging.apache.org/log4j/2.x/manual/jmx.html#ClientGUI).
 Only the log4j2 ContextSelector and StatusLogger in the JConsole attribute tree and the StatusLogger
tab in the log4j-jmx-gui (stand-alone or as a plugin) show up.  No LoggerContext elements.
> I've googled and not come up with anything!  That probably means I'm missing something
somewhere.  Any help would be greatly appreciated by me and wall which I'm banging my head
against :)
> I'm using Log4j2 beta9 with Java 1.6.0_45-b06 on win7.  I have tried it on Java 7 and
it results in the same behaviour.
> The log4j2 dependencies being used:
> {code}
>     log4j-api-2.0-beta9.jar
>     log4j-core-2.0-beta9.jar
> {code}
> My log4j2.xml:
> {code}
>     <?xml version="1.0" encoding="UTF-8" ?>
>     <Configuration  status="debug">
>         <Appenders>
>             <Console name="log-test" target="SYSTEM_OUT">
>                 <PatternLayout pattern="%d{DATE} %-5p LJX2 %c{1}: %m%n" />
>             </Console>
>         </Appenders>
>         <Loggers>
>             <Logger name="top.Log4J2TestApp" level="debug"  additivity="false">
>                 <AppenderRef ref="log-test" />
>             </Logger>
>             <Root level="trace">
>                 <AppenderRef ref="log-test" />
>             </Root>
>         </Loggers>
>     </Configuration>
> {code}
> My test program:
> {code}
>     package top;   
>     import org.apache.logging.log4j.LogManager;
>     import org.apache.logging.log4j.Logger;
>     
>     public class Log4J2TestApp { 
>         public static void main(String[] args) {
>             System.out.println("******** Started ZZZ ****************");
>             Logger log = LogManager.getLogger(Log4J2TestApp.class);
>             int cnt = 0;
>             while (true) {
>                 log.warn("=========== Test message: {} ================", cnt++);
>                 Thread.sleep(1000);
>             }
>         }
>     }
> {code}
> The output of the test program looks like this: 
> {code}
> 	******** Started ZZZ ****************
> 	2013-11-06 15:07:29,720 DEBUG Generated plugins in 0.000020959 seconds
> 	2013-11-06 15:07:29,733 DEBUG Calling createLayout on class org.apache.logging.log4j.core.layout.PatternLayout
for element PatternLayout with params(pattern="%d{DATE} %-5p LJX2 %c{1}: %m%n", Configuration(log4j2.xml),
null, charset="null",alwaysWriteExceptions="null")
> 	2013-11-06 15:07:29,735 DEBUG Generated plugins in 0.000013687 seconds
> 	2013-11-06 15:07:29,737 DEBUG Calling createAppender on class org.apache.logging.log4j.core.appender.ConsoleAppender
for element Console with params(PatternLayout(%d{DATE} %-5p LJX2 %c{1}: %m%n), null, target="SYSTEM_OUT",
name="log-test",follow="null", ignoreExceptions="null")
> 	2013-11-06 15:07:29,739 DEBUG Jansi is not installed, cannot find org.fusesource.jansi.WindowsAnsiOutputStream2013-11-06
15:07:29,740 DEBUG Calling createAppenders on class org.apache.logging.log4j.core.config.plugins.AppendersPlugin
for element Appenders with params(Appenders={log-test})
> 	2013-11-06 15:07:29,742 DEBUG Generated plugins in 0.000012832 seconds
> 	2013-11-06 15:07:29,743 DEBUG Calling createAppenderRef on class org.apache.logging.log4j.core.config.AppenderRef
for element AppenderRef with params(ref="log-test", level="null", null)
> 	2013-11-06 15:07:29,746 DEBUG Calling createLogger on class org.apache.logging.log4j.core.config.LoggerConfig
for element Logger with params(additivity="false", level="debug", name="top.Log4J2TestApp",
includeLocation="null", AppenderRef={log-test}, Properties={}, Configuration(log4j2.xml),
null)
> 	2013-11-06 15:07:29,749 DEBUG Calling createAppenderRef on class org.apache.logging.log4j.core.config.AppenderRef
for element AppenderRef with params(ref="log-test", level="null", null)
> 	2013-11-06 15:07:29,751 DEBUG Calling createLogger on class org.apache.logging.log4j.core.config.LoggerConfig$RootLogger
for element Root with params(additivity="null", level="trace", includeLocation="null", AppenderRef={log-test},
Properties={}, Configuration(log4j2.xml), null)
> 	2013-11-06 15:07:29,754 DEBUG Calling createLoggers on class org.apache.logging.log4j.core.config.plugins.LoggersPluginfor
element Loggers with params(Loggers={top.Log4J2TestApp, root})
> 	2013-11-06 15:07:29,755 DEBUG Reconfiguration completed
> 	06 Nov 2013 15:07:29,763 WARN  LJX2 Log4J2TestApp: =========== Test message: 0 ================
>     ....
> 	06 Nov 2013 15:07:36,766 WARN  LJX2 Log4J2TestApp: =========== Test message: 7 ================
> 	2013-11-06 15:07:51,450 DEBUG ServletContext not present - WebLookup not added
> 	2013-11-06 15:07:51,451 DEBUG Shutting down OutputStreamManager SYSTEM_OUT
> {code}
> The StatusLogger tab in the log4j-jmx-gui does have one exception but it would seem to
have nothing to do with the loggers.
> {code}
>     2013-11-06 15:41:01,403 WARN Multiple logging implementations found: 
>     Factory: org.apache.logging.log4j.core.impl.Log4jContextFactory, Weighting: 10
>     Using factory: org.apache.logging.log4j.core.impl.Log4jContextFactory
>     2013-11-06 15:41:01,505 WARN JmDNS or serviceInfo class not found java.lang.ClassNotFoundException:
javax.jmdns.JmDNS
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:171)
>         at org.apache.logging.log4j.core.net.MulticastDNSAdvertiser.initializeJMDNS(MulticastDNSAdvertiser.java:228)
>         at org.apache.logging.log4j.core.net.MulticastDNSAdvertiser.<clinit>(MulticastDNSAdvertiser.java:41)
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:171)
>         at org.apache.logging.log4j.core.config.plugins.PluginManager.decode(PluginManager.java:241)
>         at org.apache.logging.log4j.core.config.plugins.PluginManager.collectPlugins(PluginManager.java:152)
>         at org.apache.logging.log4j.core.config.plugins.PluginManager.collectPlugins(PluginManager.java:130)
>         at org.apache.logging.log4j.core.pattern.PatternParser.<init>(PatternParser.java:116)
>         at org.apache.logging.log4j.core.pattern.PatternParser.<init>(PatternParser.java:102)
>         at org.apache.logging.log4j.core.layout.PatternLayout.createPatternParser(PatternLayout.java:183)
>         at org.apache.logging.log4j.core.layout.PatternLayout.<init>(PatternLayout.java:115)
>         at org.apache.logging.log4j.core.layout.PatternLayout.createLayout(PatternLayout.java:219)
>         at org.apache.logging.log4j.core.config.DefaultConfiguration.<init>(DefaultConfiguration.java:51)
>         at org.apache.logging.log4j.core.LoggerContext.<init>(LoggerContext.java:63)
>         at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:217)
>         at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:114)
>         at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:81)
>         at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:83)
>         at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:34)
>         at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:387)
>         at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:332)
>         at top.Log4J2TestApp.main(Log4J2TestApp.java:10)
>         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.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
>     2013-11-06 15:41:01,612 DEBUG Generated plugins in 0.000017537 seconds
>     2013-11-06 15:41:01,625 DEBUG Calling createLayout on class org.apache.logging.log4j.core.layout.PatternLayout
for element PatternLayout with params(pattern="%d{DATE} %-5p LJX2 %c{1}: %m%n", Configuration(log4j2.xml),
null, charset="null", alwaysWriteExceptions="null")
>     2013-11-06 15:41:01,627 DEBUG Generated plugins in 0.000011977 seconds
>     2013-11-06 15:41:01,629 DEBUG Calling createAppender on class org.apache.logging.log4j.core.appender.ConsoleAppender
for element Console with params(PatternLayout(%d{DATE} %-5p LJX2 %c{1}: %m%n), null, target="SYSTEM_OUT",
name="log-test", follow="null", ignoreExceptions="null")
>     2013-11-06 15:41:01,631 DEBUG Jansi is not installed, cannot find org.fusesource.jansi.WindowsAnsiOutputStream
>     2013-11-06 15:41:01,632 DEBUG Calling createAppenders on class org.apache.logging.log4j.core.config.plugins.AppendersPlugin
for element Appenders with params(Appenders={log-test})
>     2013-11-06 15:41:01,633 DEBUG Generated plugins in 0.000011977 seconds
>     2013-11-06 15:41:01,635 DEBUG Calling createAppenderRef on class org.apache.logging.log4j.core.config.AppenderRef
for element AppenderRef with params(ref="log-test", level="null", null)
>     2013-11-06 15:41:01,637 DEBUG Calling createLogger on class org.apache.logging.log4j.core.config.LoggerConfig
for element Logger with params(additivity="false", level="debug", name="top.Log4J2TestApp",
includeLocation="null", AppenderRef={log-test}, Properties={}, Configuration(log4j2.xml),
null)
>     2013-11-06 15:41:01,640 DEBUG Calling createAppenderRef on class org.apache.logging.log4j.core.config.AppenderRef
for element AppenderRef with params(ref="log-test", level="null", null)
>     2013-11-06 15:41:01,642 DEBUG Calling createLogger on class org.apache.logging.log4j.core.config.LoggerConfig$RootLogger
for element Root with params(additivity="null", level="trace", includeLocation="null", AppenderRef={log-test},
Properties={}, Configuration(log4j2.xml), null)
>     2013-11-06 15:41:01,644 DEBUG Calling createLoggers on class org.apache.logging.log4j.core.config.plugins.LoggersPlugin
for element Loggers with params(Loggers={top.Log4J2TestApp, root})
>     2013-11-06 15:41:01,646 DEBUG Reconfiguration completed
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Mime
View raw message