JMX small improvements Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/d7b1a023 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/d7b1a023 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/d7b1a023
Branch: refs/heads/LOG4J2-1161 Commit: d7b1a023c9b0127a3d6b887d36563c8da47a4b2f Parents: a0d9be5 Author: rpopma <rpo...@apache.org> Authored: Thu Oct 22 00:03:50 2015 +0900 Committer: rpopma <rpo...@apache.org> Committed: Thu Oct 22 00:03:50 2015 +0900 ---------------------------------------------------------------------- .../log4j/core/async/AsyncLoggerContextSelector.java | 2 +- .../main/java/org/apache/logging/log4j/core/jmx/Server.java | 9 ++++++++- .../log4j/core/selector/ClassLoaderContextSelector.java | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d7b1a023/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelector.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelector.java index 68420a3..83e644c 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelector.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelector.java @@ -33,7 +33,7 @@ public class AsyncLoggerContextSelector implements ContextSelector { // LOG4J2-666 ensure unique name across separate instances created by webapp classloaders private static final AsyncLoggerContext CONTEXT = new AsyncLoggerContext("AsyncLoggerContext@" - + AsyncLoggerContext.class.hashCode()); + + Integer.toHexString(AsyncLoggerContext.class.hashCode())); /** * Returns {@code true} if the user specified this selector as the Log4jContextSelector, to make all loggers http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d7b1a023/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java index 1ea55e9..4860551 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java @@ -161,8 +161,11 @@ public final class Server { LOGGER.debug("Could not register MBeans: no ContextSelector found."); return; } + LOGGER.trace("Reregistering MBeans after reconfigure. Selector={}", selector); final List<LoggerContext> contexts = selector.getLoggerContexts(); + int i = 0; for (final LoggerContext ctx : contexts) { + LOGGER.trace("Reregistering context ({}/{}): '{}' {}", ++i, contexts.size(), ctx.getName(), ctx); // first unregister the context and all nested loggers, // appenders, statusLogger, contextSelector, ringbuffers... unregisterLoggerContext(ctx.getName(), mbs); @@ -329,8 +332,12 @@ public final class Server { try { final ObjectName pattern = new ObjectName(search); final Set<ObjectName> found = mbs.queryNames(pattern, null); + if (found.isEmpty()) { + LOGGER.trace("Unregistering but no MBeans found matching '{}'", search); + } else { + LOGGER.trace("Unregistering {} MBeans: {}", found.size(), found); + } for (final ObjectName objectName : found) { - LOGGER.debug("Unregistering MBean {}", objectName); mbs.unregisterMBean(objectName); } } catch (final Exception ex) { http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d7b1a023/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java index e3b5679..f7fa5d4 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java @@ -169,7 +169,7 @@ public class ClassLoaderContextSelector implements ContextSelector { } private String toContextMapKey(final ClassLoader loader) { - return String.valueOf(System.identityHashCode(loader)); + return Integer.toHexString(System.identityHashCode(loader)); } protected LoggerContext getDefault() {