http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85c5e81a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/yaml/YamlConfiguration.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/yaml/YamlConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/yaml/YamlConfiguration.java index 6350a48..ed7e9ba 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/yaml/YamlConfiguration.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/yaml/YamlConfiguration.java @@ -18,6 +18,7 @@ package org.apache.logging.log4j.core.config.yaml; import java.io.IOException; +import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.ConfigurationSource; import org.apache.logging.log4j.core.config.json.JsonConfiguration; @@ -28,8 +29,8 @@ import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; public class YamlConfiguration extends JsonConfiguration { - public YamlConfiguration(final ConfigurationSource configSource) { - super(configSource); + public YamlConfiguration(final LoggerContext loggerContext, final ConfigurationSource configSource) { + super(loggerContext, configSource); } @Override @@ -44,7 +45,7 @@ public class YamlConfiguration extends JsonConfiguration { if (source == null) { return null; } - return new YamlConfiguration(source); + return new YamlConfiguration(getLoggerContext(), source); } catch (final IOException ex) { LOGGER.error("Cannot locate file {}", getConfigurationSource(), ex); }
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85c5e81a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/yaml/YamlConfigurationFactory.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/yaml/YamlConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/yaml/YamlConfigurationFactory.java index f3429bb..5d7b1f5 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/yaml/YamlConfigurationFactory.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/yaml/YamlConfigurationFactory.java @@ -16,6 +16,7 @@ */ package org.apache.logging.log4j.core.config.yaml; +import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.ConfigurationFactory; import org.apache.logging.log4j.core.config.ConfigurationSource; @@ -58,11 +59,11 @@ public class YamlConfigurationFactory extends ConfigurationFactory { } @Override - public Configuration getConfiguration(final ConfigurationSource source) { + public Configuration getConfiguration(LoggerContext loggerContext, final ConfigurationSource source) { if (!isActive) { return null; } - return new YamlConfiguration(source); + return new YamlConfiguration(loggerContext, source); } @Override http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85c5e81a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java index 12b1204..f7b4a83 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java @@ -173,7 +173,7 @@ public class Log4jContextFactory implements LoggerContextFactory, ShutdownCallba if (ctx.getState() == LifeCycle.State.INITIALIZED) { if (source != null) { ContextAnchor.THREAD_CONTEXT.set(ctx); - final Configuration config = ConfigurationFactory.getInstance().getConfiguration(source); + final Configuration config = ConfigurationFactory.getInstance().getConfiguration(ctx, source); LOGGER.debug("Starting LoggerContext[name={}] from configuration {}", ctx.getName(), source); ctx.start(config); ContextAnchor.THREAD_CONTEXT.remove(); @@ -234,7 +234,7 @@ public class Log4jContextFactory implements LoggerContextFactory, ShutdownCallba if (ctx.getState() == LifeCycle.State.INITIALIZED) { if (configLocation != null || name != null) { ContextAnchor.THREAD_CONTEXT.set(ctx); - final Configuration config = ConfigurationFactory.getInstance().getConfiguration(name, configLocation); + final Configuration config = ConfigurationFactory.getInstance().getConfiguration(ctx, name, configLocation); LOGGER.debug("Starting LoggerContext[name={}] from configuration at {}", ctx.getName(), configLocation); ctx.start(config); ContextAnchor.THREAD_CONTEXT.remove(); @@ -261,7 +261,7 @@ public class Log4jContextFactory implements LoggerContextFactory, ShutdownCallba final List<AbstractConfiguration> configurations = new ArrayList<>(configLocations.size()); for (final URI configLocation : configLocations) { final Configuration currentReadConfiguration = ConfigurationFactory.getInstance() - .getConfiguration(name, configLocation); + .getConfiguration(ctx, name, configLocation); if (currentReadConfiguration instanceof AbstractConfiguration) { configurations.add((AbstractConfiguration) currentReadConfiguration); } else { http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85c5e81a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerContextAdmin.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerContextAdmin.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerContextAdmin.java index c9ddb90..a2a9288 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerContextAdmin.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerContextAdmin.java @@ -132,7 +132,7 @@ public class LoggerContextAdmin extends NotificationBroadcasterSupport implement LOGGER.debug("Opening config URL {}", configURL); configSource = new ConfigurationSource(configURL.openStream(), configURL); } - final Configuration config = ConfigurationFactory.getInstance().getConfiguration(configSource); + final Configuration config = ConfigurationFactory.getInstance().getConfiguration(loggerContext, configSource); loggerContext.start(config); LOGGER.debug("Completed remote request to reconfigure."); } @@ -197,7 +197,7 @@ public class LoggerContextAdmin extends NotificationBroadcasterSupport implement try { final InputStream in = new ByteArrayInputStream(configText.getBytes(charsetName)); final ConfigurationSource source = new ConfigurationSource(in); - final Configuration updated = ConfigurationFactory.getInstance().getConfiguration(source); + final Configuration updated = ConfigurationFactory.getInstance().getConfiguration(loggerContext, source); loggerContext.start(updated); LOGGER.debug("Completed remote request to reconfigure from config text."); } catch (final Exception ex) { http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85c5e81a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/AbstractSocketServer.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/AbstractSocketServer.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/AbstractSocketServer.java index af2ca0f..7350e6d 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/AbstractSocketServer.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/AbstractSocketServer.java @@ -29,6 +29,7 @@ import java.util.Objects; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.LogEventListener; +import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.ConfigurationSource; import org.apache.logging.log4j.core.config.xml.XmlConfiguration; @@ -57,7 +58,7 @@ public abstract class AbstractSocketServer<T extends InputStream> extends LogEve } @Override - public Configuration getConfiguration(final String name, final URI configLocation) { + public Configuration getConfiguration(final LoggerContext loggerContext, final String name, final URI configLocation) { if (Strings.isNotEmpty(path)) { File file = null; ConfigurationSource source = null; @@ -81,14 +82,14 @@ public abstract class AbstractSocketServer<T extends InputStream> extends LogEve try { if (source != null) { - return new XmlConfiguration(source); + return new XmlConfiguration(loggerContext, source); } } catch (final Exception ex) { // Ignore this error. } System.err.println("Unable to process configuration at " + path + ", using default."); } - return super.getConfiguration(name, configLocation); + return super.getConfiguration(loggerContext, name, configLocation); } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85c5e81a/log4j-core/src/test/java/org/apache/logging/log4j/core/BasicConfigurationFactory.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/BasicConfigurationFactory.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/BasicConfigurationFactory.java index 844192f..6c6f56a 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/BasicConfigurationFactory.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/BasicConfigurationFactory.java @@ -31,7 +31,7 @@ import org.apache.logging.log4j.core.config.LoggerConfig; public class BasicConfigurationFactory extends ConfigurationFactory { @Override - public Configuration getConfiguration(final String name, final URI configLocation) { + public Configuration getConfiguration(LoggerContext loggerContext, final String name, final URI configLocation) { return new BasicConfiguration(); } @@ -41,7 +41,7 @@ public class BasicConfigurationFactory extends ConfigurationFactory { } @Override - public Configuration getConfiguration(final ConfigurationSource source) { + public Configuration getConfiguration(LoggerContext loggerContext, final ConfigurationSource source) { return null; } @@ -50,7 +50,7 @@ public class BasicConfigurationFactory extends ConfigurationFactory { private static final String DEFAULT_LEVEL = "org.apache.logging.log4j.level"; public BasicConfiguration() { - super(ConfigurationSource.NULL_SOURCE); + super(null, ConfigurationSource.NULL_SOURCE); final LoggerConfig root = getRootLogger(); final String name = System.getProperty(DEFAULT_LEVEL); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85c5e81a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/ConfigurationTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/ConfigurationTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/ConfigurationTest.java index 4cfe7c3..0c7c569 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/ConfigurationTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/ConfigurationTest.java @@ -101,6 +101,12 @@ public class ConfigurationTest { } @Test + public void testConfigurationLoggerContext() throws Exception { + final Configuration configuration = this.ctx.getConfiguration(); + assertThat(configuration.getLoggerContext(), is(notNullValue())); + } + + @Test public void testGetLoggerConfigEmpty() throws Exception { final Configuration config = this.ctx.getConfiguration(); assertEquals(config.getRootLogger(), config.getLoggerConfig(Strings.EMPTY)); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85c5e81a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/builder/CustomConfigurationFactory.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/builder/CustomConfigurationFactory.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/builder/CustomConfigurationFactory.java index d68b40f..126b0f9 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/builder/CustomConfigurationFactory.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/builder/CustomConfigurationFactory.java @@ -16,8 +16,11 @@ */ package org.apache.logging.log4j.core.config.builder; +import java.net.URI; + import org.apache.logging.log4j.Level; import org.apache.logging.log4j.core.Filter; +import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.appender.ConsoleAppender; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.ConfigurationFactory; @@ -26,8 +29,6 @@ import org.apache.logging.log4j.core.config.builder.api.AppenderComponentBuilder import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder; import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration; -import java.net.URI; - /** * Normally this would be a plugin. However, we don't want it used for everything so it will be defined * via a system property. @@ -57,12 +58,12 @@ public class CustomConfigurationFactory extends ConfigurationFactory { } @Override - public Configuration getConfiguration(final ConfigurationSource source) { - return getConfiguration(source.toString(), null); + public Configuration getConfiguration(LoggerContext loggerContext, final ConfigurationSource source) { + return getConfiguration(null, source.toString(), null); } @Override - public Configuration getConfiguration(final String name, final URI configLocation) { + public Configuration getConfiguration(LoggerContext loggerContext, final String name, final URI configLocation) { final ConfigurationBuilder<BuiltConfiguration> builder = newConfigurationBuilder(); return addTestFixtures(name, builder); } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85c5e81a/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java ---------------------------------------------------------------------- diff --git a/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java b/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java index bd34b52..11815cb 100644 --- a/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java +++ b/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java @@ -16,9 +16,12 @@ */ package org.apache.logging.log4j.configuration; +import java.io.Serializable; + import org.apache.logging.log4j.Level; import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.Layout; +import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.appender.ConsoleAppender; import org.apache.logging.log4j.core.config.AbstractConfiguration; import org.apache.logging.log4j.core.config.ConfigurationSource; @@ -26,8 +29,6 @@ import org.apache.logging.log4j.core.config.LoggerConfig; import org.apache.logging.log4j.core.layout.PatternLayout; import org.apache.logging.log4j.util.PropertiesUtil; -import java.io.Serializable; - /** * This Configuration is the same as the DefaultConfiguration but shows how a custom configuration can be built * programmatically @@ -50,15 +51,15 @@ public class CustomConfiguration extends AbstractConfiguration { */ public static final String DEFAULT_PATTERN = "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"; - public CustomConfiguration() { - this(ConfigurationSource.NULL_SOURCE); + public CustomConfiguration(LoggerContext loggerContext) { + this(loggerContext, ConfigurationSource.NULL_SOURCE); } /** * Constructor to create the default configuration. */ - public CustomConfiguration(final ConfigurationSource source) { - super(source); + public CustomConfiguration(LoggerContext loggerContext, final ConfigurationSource source) { + super(loggerContext, source); setName(CONFIG_NAME); final Layout<? extends Serializable> layout = PatternLayout.newBuilder() http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85c5e81a/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfigurationFactory.java ---------------------------------------------------------------------- diff --git a/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfigurationFactory.java b/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfigurationFactory.java index 7ef0d92..642abe4 100644 --- a/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfigurationFactory.java +++ b/log4j-samples/configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfigurationFactory.java @@ -16,12 +16,14 @@ */ package org.apache.logging.log4j.configuration; +import java.net.URI; + +import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.ConfigurationFactory; import org.apache.logging.log4j.core.config.ConfigurationSource; import org.apache.logging.log4j.core.config.Order; import org.apache.logging.log4j.core.config.plugins.Plugin; -import java.net.URI; /** * Factory to construct a CustomConfiguration. @@ -41,13 +43,13 @@ public class CustomConfigurationFactory extends ConfigurationFactory { * @return The Configuration. */ @Override - public Configuration getConfiguration(final ConfigurationSource source) { - return new CustomConfiguration(source); + public Configuration getConfiguration(LoggerContext loggerContext, final ConfigurationSource source) { + return new CustomConfiguration(loggerContext, source); } @Override - public Configuration getConfiguration(final String name, final URI configLocation) { - return new CustomConfiguration(); + public Configuration getConfiguration(LoggerContext loggerContext, final String name, final URI configLocation) { + return new CustomConfiguration(loggerContext); } /**