You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2013/04/17 22:41:23 UTC
svn commit: r1469065 - in /logging/log4j/log4j2/trunk:
core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java
src/changes/changes.xml
Author: rgoers
Date: Wed Apr 17 20:41:23 2013
New Revision: 1469065
URL: http://svn.apache.org/r1469065
Log:
LOG4J2-213 - Calling the stop method on the LoggerContext during shutdown
Modified:
logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
logging/log4j/log4j2/trunk/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java
logging/log4j/log4j2/trunk/src/changes/changes.xml
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java?rev=1469065&r1=1469064&r2=1469065&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java Wed Apr 17 20:41:23 2013
@@ -59,6 +59,8 @@ public class LoggerContext implements or
private final URI configLocation;
+ private ShutdownThread shutdownThread = null;
+
/**
* Status of the LoggerContext.
*/
@@ -137,6 +139,13 @@ public class LoggerContext implements or
if (status == Status.INITIALIZED) {
status = Status.STARTING;
reconfigure();
+ shutdownThread = new ShutdownThread(this);
+ try {
+ Runtime.getRuntime().addShutdownHook(shutdownThread);
+ } catch (SecurityException se) {
+ LOGGER.warn("Unable to register shutdown hook due to security restrictions");
+ shutdownThread = null;
+ }
status = Status.STARTED;
}
} finally {
@@ -149,6 +158,10 @@ public class LoggerContext implements or
configLock.lock();
try {
status = Status.STOPPING;
+ if (shutdownThread != null) {
+ Runtime.getRuntime().removeShutdownHook(shutdownThread);
+ shutdownThread = null;
+ }
updateLoggers(new NullConfiguration());
config.stop();
externalContext = null;
@@ -331,4 +344,18 @@ public class LoggerContext implements or
return new Logger(ctx, name, messageFactory);
}
+ private class ShutdownThread extends Thread {
+
+ private final LoggerContext context;
+
+ public ShutdownThread(LoggerContext context) {
+ this.context = context;
+ }
+
+ public void run() {
+ context.shutdownThread = null;
+ context.stop();
+ }
+ }
+
}
Modified: logging/log4j/log4j2/trunk/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java?rev=1469065&r1=1469064&r2=1469065&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java (original)
+++ logging/log4j/log4j2/trunk/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java Wed Apr 17 20:41:23 2013
@@ -162,6 +162,7 @@ public class FlumePersistentManager exte
@Override
protected void releaseSub() {
+ LOGGER.debug("Shutting down FlumePersistentManager");
worker.shutdown();
try {
worker.join();
@@ -315,9 +316,11 @@ public class FlumePersistentManager exte
this.queue = queue;
this.batchSize = batchsize;
this.secretKey = secretKey;
+ this.setDaemon(true);
}
public void shutdown() {
+ LOGGER.debug("Writer thread shutting down");
this.shutdown = true;
if (queue.size() == 0) {
queue.add(SHUTDOWN.getBytes(UTF8));
Modified: logging/log4j/log4j2/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/changes/changes.xml?rev=1469065&r1=1469064&r2=1469065&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/src/changes/changes.xml (original)
+++ logging/log4j/log4j2/trunk/src/changes/changes.xml Wed Apr 17 20:41:23 2013
@@ -23,6 +23,9 @@
<body>
<release version="2.0-beta5" date="@TBD@" description="Bug fixes and enhancements">
+ <action issue="LOG4J2-212" dev="rgoers" type="fix">
+ Call LoggerContext.stop when the application is shutdown.
+ </action>
<action issue="LOG4J2-210" dev="rgoers" type="fix" due-to="Arkin Yetis">
MapMessage was not enclosing key value in quotes when generating XML.
</action>