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>