This is an automated email from the ASF dual-hosted git repository. tv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-jcs.git
commit f8661a894d4538c9cb7ab6eaf19075b3e50c6be0 Author: Thomas Vandahl <[email protected]> AuthorDate: Fri Dec 9 10:17:46 2022 +0100 Write errors out to stderr if no log system can be found. --- .../java/org/apache/commons/jcs3/log/LogManager.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/commons-jcs-core/src/main/java/org/apache/commons/jcs3/log/LogManager.java b/commons-jcs-core/src/main/java/org/apache/commons/jcs3/log/LogManager.java index 49de7f3a..ac05b39e 100644 --- a/commons-jcs-core/src/main/java/org/apache/commons/jcs3/log/LogManager.java +++ b/commons-jcs-core/src/main/java/org/apache/commons/jcs3/log/LogManager.java @@ -61,6 +61,8 @@ public class LogManager LogManager.logSystem = System.getProperty("jcs.logSystem", LOGSYSTEM_JAVA_UTIL_LOGGING); } + + // Store errors that may occur until log system is available List<ServiceConfigurationError> errors = new ArrayList<>(); Iterator<LogFactory> itr = factories.iterator(); LogFactory factory = null; @@ -74,15 +76,18 @@ public class LogManager factory = instance; break; } - } catch (ServiceConfigurationError e) { + } + catch (ServiceConfigurationError e) + { errors.add(e); } } if (factory != null) { - Log log = factory.getLog(LogFactoryHolder.class); if (!errors.isEmpty()) { + Log log = factory.getLog(LogFactoryHolder.class); + for (ServiceConfigurationError error : errors) { log.debug("Error loading LogFactory", error); @@ -91,10 +96,9 @@ public class LogManager } return factory; } - if (!errors.isEmpty()) { - throw new RuntimeException("Could not find factory implementation for log subsystem " + logSystem, - errors.get(0)); - } + + // No log system could be found --> report errors to stderr + errors.forEach(e -> System.err.println(e.getMessage())); throw new RuntimeException("Could not find factory implementation for log subsystem " + logSystem); } }
