aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--poi/src/main/java/org/apache/poi/logging/PoiLogManager.java21
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) {