You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2017/06/24 12:41:46 UTC

logging-log4j2 git commit: LOG4J2-1801 Add more detail to WARN "Ignoring log event" messages printed to the console after log4j was shut down.

Repository: logging-log4j2
Updated Branches:
  refs/heads/master d26353cbb -> ab33665bf


LOG4J2-1801 Add more detail to WARN "Ignoring log event" messages printed to the console after log4j was shut down.


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/ab33665b
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/ab33665b
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/ab33665b

Branch: refs/heads/master
Commit: ab33665bf3eb542ef0dc751f9b44a59043003fb0
Parents: d26353c
Author: rpopma <rp...@apache.org>
Authored: Sat Jun 24 21:41:33 2017 +0900
Committer: rpopma <rp...@apache.org>
Committed: Sat Jun 24 21:41:33 2017 +0900

----------------------------------------------------------------------
 .../log4j/core/async/AsyncLoggerConfigDisruptor.java     |  5 ++++-
 .../logging/log4j/core/async/AsyncLoggerDisruptor.java   | 11 ++++++++---
 .../log4j/core/async/RingBufferLogEventTranslator.java   |  2 +-
 src/changes/changes.xml                                  |  3 +++
 4 files changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ab33665b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java
index a220f4d..bdb1c5c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java
@@ -31,6 +31,7 @@ import org.apache.logging.log4j.core.impl.ReusableLogEventFactory;
 import org.apache.logging.log4j.core.jmx.RingBufferAdmin;
 import org.apache.logging.log4j.core.util.ExecutorServices;
 import org.apache.logging.log4j.core.util.Log4jThreadFactory;
+import org.apache.logging.log4j.core.util.Throwables;
 import org.apache.logging.log4j.message.ReusableMessage;
 
 import com.lmax.disruptor.EventFactory;
@@ -323,7 +324,9 @@ public class AsyncLoggerConfigDisruptor extends AbstractLifeCycle implements Asy
         } catch (final NullPointerException npe) {
             // Note: NPE prevents us from adding a log event to the disruptor after it was shut down,
             // which could cause the publishEvent method to hang and never return.
-            LOGGER.warn("Ignoring log event after log4j was shut down.");
+            LOGGER.warn("Ignoring log event after log4j was shut down: {} [{}] {}", event.getLevel(),
+                    event.getLoggerName(), event.getMessage().getFormattedMessage()
+                            + (event.getThrown() == null ? "" : Throwables.toStringList(event.getThrown())));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ab33665b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerDisruptor.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerDisruptor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerDisruptor.java
index f8f94e2..a05836f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerDisruptor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerDisruptor.java
@@ -26,6 +26,7 @@ import org.apache.logging.log4j.core.AbstractLifeCycle;
 import org.apache.logging.log4j.core.jmx.RingBufferAdmin;
 import org.apache.logging.log4j.core.util.ExecutorServices;
 import org.apache.logging.log4j.core.util.Log4jThreadFactory;
+import org.apache.logging.log4j.core.util.Throwables;
 
 import com.lmax.disruptor.ExceptionHandler;
 import com.lmax.disruptor.RingBuffer;
@@ -139,7 +140,7 @@ class AsyncLoggerDisruptor extends AbstractLifeCycle {
             temp.shutdown(timeout, timeUnit);
         } catch (final TimeoutException e) {
             temp.shutdown();
-        } 
+        }
 
         LOGGER.trace("[{}] AsyncLoggerDisruptor: shutting down disruptor executor.", contextName);
         // finally, kill the processor thread
@@ -204,7 +205,9 @@ class AsyncLoggerDisruptor extends AbstractLifeCycle {
         try {
             return disruptor.getRingBuffer().tryPublishEvent(translator);
         } catch (final NullPointerException npe) {
-            LOGGER.warn("[{}] Ignoring log event after log4j was shut down.", contextName);
+            LOGGER.warn("[{}] Ignoring log event after log4j was shut down: {} [{}] {}", contextName,
+                    translator.level, translator.loggerName, translator.message.getFormattedMessage()
+                            + (translator.thrown == null ? "" : Throwables.toStringList(translator.thrown)));
             return false;
         }
     }
@@ -217,7 +220,9 @@ class AsyncLoggerDisruptor extends AbstractLifeCycle {
             // was shut down, which could cause the publishEvent method to hang and never return.
             disruptor.publishEvent(translator);
         } catch (final NullPointerException npe) {
-            LOGGER.warn("[{}] Ignoring log event after log4j was shut down.", contextName);
+            LOGGER.warn("[{}] Ignoring log event after log4j was shut down: {} [{}] {}", contextName,
+                    translator.level, translator.loggerName, translator.message.getFormattedMessage()
+                            + (translator.thrown == null ? "" : Throwables.toStringList(translator.thrown)));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ab33665b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java
index d612bb4..cb3e6ca 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java
@@ -37,7 +37,7 @@ public class RingBufferLogEventTranslator implements
 
     private final ContextDataInjector injector = ContextDataInjectorFactory.createInjector();
     private AsyncLogger asyncLogger;
-    private String loggerName;
+    String loggerName;
     protected Marker marker;
     protected String fqcn;
     protected Level level;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ab33665b/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index b5592b6..55627e8 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -31,6 +31,9 @@
          - "remove" - Removed
     -->
     <release version="2.9.0" date="2017-MM-DD" description="GA Release 2.9.0">
+      <action issue="LOG4J2-1801" dev="rpopma" type="update">
+        Add more detail to WARN "Ignoring log event" messages printed to the console after log4j was shut down.
+      </action>
       <action issue="LOG4J2-1814" dev="rpopma" type="add">
         Added wrapper classes CustomLoggerGenerator and ExtendedLoggerGenerator to avoid class name with a dollar ($) character which has special meaning in many *nix command line environments.
       </action>