You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tv...@apache.org on 2022/12/09 09:39:19 UTC
[commons-jcs] 01/02: Write errors out to stderr if no log system can be found.
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 <tv...@apache.org>
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);
}
}