You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2016/08/27 06:51:30 UTC
[02/40] logging-log4j2 git commit: First commit for branch for
[LOG4J2-1547] The Core AbstractConfiguration should track its LoggerContext.
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);
}
/**