Colin Froggatt created LOG4J2-443:
-------------------------------------

             Summary: 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


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#6144)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to