Repository: logging-log4j2 Updated Branches: refs/heads/LOG4J2-2266 [created] 2a051c2c7
LOG4J2-2266 - Use classloaders when loading properties Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2a051c2c Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2a051c2c Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2a051c2c Branch: refs/heads/LOG4J2-2266 Commit: 2a051c2c70856863161402ccb8c1315d942e061a Parents: af5cd99 Author: Ralph Goers <[email protected]> Authored: Wed Jul 4 20:05:17 2018 -0700 Committer: Ralph Goers <[email protected]> Committed: Wed Jul 4 20:05:17 2018 -0700 ---------------------------------------------------------------------- .../org/apache/logging/log4j/util/PropertiesUtil.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2a051c2c/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java index 9349b2e..4c20dc0 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java @@ -316,12 +316,22 @@ public final class PropertiesUtil { private Environment(final PropertySource propertySource) { sources.add(propertySource); - for (final PropertySource source : ServiceLoader.load(PropertySource.class)) { - sources.add(source); + for (ClassLoader classLoader : LoaderUtil.getClassLoaders()) { + try { + loadPropertySource(classLoader); + } catch (Throwable ex) { + LowLevelLogUtil.log("Unable to retrieve propertySource from ClassLoader " + classLoader + ", " + ex.getMessage()); + } } reload(); } + private void loadPropertySource(ClassLoader classLoader) { + for (final PropertySource source : ServiceLoader.load(PropertySource.class, classLoader)) { + sources.add(source); + } + } + private synchronized void reload() { literal.clear(); normalized.clear();
