diff options
-rw-r--r-- | poi/src/main/java/org/apache/poi/logging/PoiLogManager.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/poi/src/main/java/org/apache/poi/logging/PoiLogManager.java b/poi/src/main/java/org/apache/poi/logging/PoiLogManager.java index 78ec997cc5..a6289fc08a 100644 --- a/poi/src/main/java/org/apache/poi/logging/PoiLogManager.java +++ b/poi/src/main/java/org/apache/poi/logging/PoiLogManager.java @@ -56,6 +56,27 @@ public final class PoiLogManager { } } + public static Logger getLogger(String name) { + try { + final Logger logger = LogManager.getLogger(name); + if (logger == null) { + if (shouldLog()) { + System.err.println("[PoiLogManager] Log4J returned null logger. Falling back to No-Op logger."); + } + return NoOpLogger.INSTANCE; + } + return logger; + } catch (Throwable t) { + if (!ExceptionUtil.isFatal(t)) { + if (shouldLog()) { + System.err.println("[PoiLogManager] Issue loading Log4J. Falling back to No-Op logger."); + t.printStackTrace(); + } + } + return NoOpLogger.INSTANCE; + } + } + private static synchronized boolean shouldLog() { final long time = System.currentTimeMillis(); if (time > LAST_TIME + SLEEP_TIME) { |