diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java index 63073e6..c44baf8 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java @@ -484,7 +484,10 @@ * @return The previous Configuration. */ private Configuration setConfiguration(final Configuration config) { - Objects.requireNonNull(config, "No Configuration was provided"); + if (config == null) { + LOGGER.error("No configuration found for '%s'.", contextName); + return this.configuration; + } configLock.lock(); try { final Configuration prev = this.configuration; @@ -568,14 +571,19 @@ LOGGER.debug("Reconfiguration started for context[name={}] at URI {} ({}) with optional ClassLoader: {}", contextName, configURI, this, cl); final Configuration instance = ConfigurationFactory.getInstance().getConfiguration(contextName, configURI, cl); - setConfiguration(instance); - /* - * instance.start(); Configuration old = setConfiguration(instance); updateLoggers(); if (old != null) { - * old.stop(); } - */ - final String location = configuration == null ? "?" : String.valueOf(configuration.getConfigurationSource()); - LOGGER.debug("Reconfiguration complete for context[name={}] at URI {} ({}) with optional ClassLoader: {}", - contextName, location, this, cl); + if (instance == null) { + LOGGER.error("Reconfiguration failed: No configuration found for '%s' at '%s' in '%s'", contextName, configURI, cl); + } else { + setConfiguration(instance); + /* + * instance.start(); Configuration old = setConfiguration(instance); updateLoggers(); if (old != null) { + * old.stop(); } + */ + final String location = configuration == null ? "?" + : String.valueOf(configuration.getConfigurationSource()); + LOGGER.debug("Reconfiguration complete for context[name={}] at URI {} ({}) with optional ClassLoader: {}", + contextName, location, this, cl); + } } /**