Perhaps you also want to add this to the LogManager.shutdown() methods, since I 
imagine that's what people will actually use/look at. 

Sent from my iPhone

> On 2016/01/27, at 18:20, Mikael Ståldal <[email protected]> wrote:
> 
> OK, done.
> 
>> On Wed, Jan 27, 2016 at 6:17 AM, Remko Popma <[email protected]> wrote:
>> Mikael, feel free to update the javadoc when you have time. 
>> 
>> 
>>> On Wednesday, 27 January 2016, Remko Popma <[email protected]> wrote:
>>> Since the async loggers and appenders will wait until their queue has been 
>>> cleared by the background thread, it is a blocking call. 
>>> 
>>> We should probably add a sentence to the java doc to clarify this.  
>>> 
>>> Sent from my iPhone
>>> 
>>>> On 2016/01/26, at 18:15, Mikael Ståldal <[email protected]> wrote:
>>>> 
>>>> I think that we should be clear, in Javadoc, about whether this new method 
>>>> is synchronous/blocking or not.
>>>> 
>>>> (I could say the same about quite a few existing methods as well, but 
>>>> let's at least start to be clear about new methods from now.)
>>>> 
>>>>> On Tue, Jan 26, 2016 at 1:31 AM, Matt Sicker <[email protected]> wrote:
>>>>> I like it!
>>>>> 
>>>>>> On 25 January 2016 at 18:23, Ralph Goers <[email protected]> 
>>>>>> wrote:
>>>>>> Then the method name would be terminate?  I could live with that.  I 
>>>>>> also like the fact that when something goes wrong with it then it would 
>>>>>> be interminable ;-)
>>>>>> 
>>>>>> Ralph
>>>>>> 
>>>>>>> On Jan 25, 2016, at 5:18 PM, Matt Sicker <[email protected]> wrote:
>>>>>>> 
>>>>>>> How about Terminable? It's even a real word to boot.
>>>>>>> 
>>>>>>> On 25 January 2016 at 18:15, Ralph Goers <[email protected]> 
>>>>>>> wrote:
>>>>>>>> Yes, well - Serializable actually sounds like it should be a real 
>>>>>>>> word. Shutdownable doesn’t - in fact, my mail editor just split it 
>>>>>>>> into two words to “help” me. I take a different view. A class that 
>>>>>>>> declares it implements an interface isn’t “capable” of anything - it 
>>>>>>>> just implements the interface. The interface name is what tells you 
>>>>>>>> that the implementing class is able to do something, which is why you 
>>>>>>>> have Comparable instead of just Compare, Cloneable instead of just 
>>>>>>>> Clone,  or Closeable instead of just Close. Would you want Stop 
>>>>>>>> instead of Stoppable?  I view “able” as just a shorthand way of saying 
>>>>>>>> “Capable”, but unfortunately that just doesn’t sound right with 
>>>>>>>> Shutdown (at least to me).
>>>>>>>> 
>>>>>>>> Here are some “able” alternatives - presumably each would have a 
>>>>>>>> corresponding method name instead of shutdown:
>>>>>>>> Terminateable.
>>>>>>>> Completeable.
>>>>>>>> Concludeable.
>>>>>>>> Haltable.
>>>>>>>> Dismissable.
>>>>>>>> Expireable.
>>>>>>>> 
>>>>>>>> I suppose we could also use Stoppable but that seems odd since stop is 
>>>>>>>> part of Lifecycle.
>>>>>>>> 
>>>>>>>> Got a preference?
>>>>>>>> 
>>>>>>>> Ralph
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On Jan 25, 2016, at 4:35 PM, Gary Gregory <[email protected]> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> I see some interfaces with "*Capable*" in the name here and there in 
>>>>>>>>> the FOSS world (but not in the JRE) so I am a little more comfortable 
>>>>>>>>> with it. 
>>>>>>>>> 
>>>>>>>>> I still see plain old "Shutdown" as simpler. 
>>>>>>>>> 
>>>>>>>>> I think I've boiled down my feel for this name to the fact that the 
>>>>>>>>> Capable postfix is redundant since a class implementing any interface 
>>>>>>>>> is "capable" of that functionality. IOW we have Serializable vs. 
>>>>>>>>> SerializationCabable, which means the same thing.
>>>>>>>>> 
>>>>>>>>> Gary
>>>>>>>>> 
>>>>>>>>>> On Mon, Jan 25, 2016 at 7:27 AM, Ralph Goers 
>>>>>>>>>> <[email protected]> wrote:
>>>>>>>>>> What does it feel weird to you?  To be honest, I originally named 
>>>>>>>>>> the interface ‘Shutdown” and then changed it since it really is 
>>>>>>>>>> about implementing a behavior and “Shutdown” alone doesn’t really 
>>>>>>>>>> describe that.
>>>>>>>>>> 
>>>>>>>>>> Ralph
>>>>>>>>>> 
>>>>>>>>>>> On Jan 24, 2016, at 11:09 PM, Gary Gregory <[email protected]> 
>>>>>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> On Sun, Jan 24, 2016 at 10:07 PM, Gary Gregory 
>>>>>>>>>>>> <[email protected]> wrote:
>>>>>>>>>>>>> On Sun, Jan 24, 2016 at 1:54 PM, Ralph Goers 
>>>>>>>>>>>>> <[email protected]> wrote:
>>>>>>>>>>>>> Yes, Shutdownable is too weird. 
>>>>>>>>>>>> 
>>>>>>>>>>>> How about calling it simply "Shutdown" then? FooCapable feels 
>>>>>>>>>>>> weird to me.
>>>>>>>>>>>> 
>>>>>>>>>>>> Can anyone think of other (one-method or not) optional 
>>>>>>>>>>>> feature-like interfaces in the JRE or other code base?
>>>>>>>>>>> 
>>>>>>>>>>> hm... ShutdownService?
>>>>>>>>>>> 
>>>>>>>>>>> Gary
>>>>>>>>>>>  
>>>>>>>>>>>> 
>>>>>>>>>>>> Gary
>>>>>>>>>>>> 
>>>>>>>>>>>>> Closeable would imply there is a close method, not a shutdown 
>>>>>>>>>>>>> method.  I have my doubts about the try-with-resources use case 
>>>>>>>>>>>>> here.  Virtually all usages are probably going to be to disable 
>>>>>>>>>>>>> automatic shutdown and then the user placing the shutdown call 
>>>>>>>>>>>>> somewhere they can control, which probably will have nothing to 
>>>>>>>>>>>>> do with initialization of logging. 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Ralph
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Jan 24, 2016, at 2:43 PM, Gary Gregory 
>>>>>>>>>>>>>> <[email protected]> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Resending, got a error from my phone...
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> ---------- Forwarded message ----------
>>>>>>>>>>>>>> From: "Gary Gregory" <[email protected]>
>>>>>>>>>>>>>> Date: Jan 24, 2016 1:41 PM
>>>>>>>>>>>>>> Subject: Re: logging-log4j2 git commit: LOG4J2-124 - Add 
>>>>>>>>>>>>>> shutdown methods to LogManager
>>>>>>>>>>>>>> To: <[email protected]>
>>>>>>>>>>>>>> Cc: 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Any reason not use the usual -able postfix instead of 
>>>>>>>>>>>>>> ShutdownCapable: Shutdownable sounds too weird? What about 
>>>>>>>>>>>>>> reusing plain old Closeable? That means you could use the 
>>>>>>>>>>>>>> context in a try-with-resources block, a bonus.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Gary 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On Jan 24, 2016 10:18 AM, <[email protected]> wrote:
>>>>>>>>>>>>>>> Repository: logging-log4j2
>>>>>>>>>>>>>>> Updated Branches:
>>>>>>>>>>>>>>>   refs/heads/master 7d3aac4b9 -> 2df3f0e72
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> LOG4J2-124 - Add shutdown methods to LogManager
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Project: 
>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
>>>>>>>>>>>>>>> Commit: 
>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2df3f0e7
>>>>>>>>>>>>>>> Tree: 
>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2df3f0e7
>>>>>>>>>>>>>>> Diff: 
>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2df3f0e7
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Branch: refs/heads/master
>>>>>>>>>>>>>>> Commit: 2df3f0e7262c90e3fe1700f053eebf18491650d9
>>>>>>>>>>>>>>> Parents: 7d3aac4
>>>>>>>>>>>>>>> Author: Ralph Goers <[email protected]>
>>>>>>>>>>>>>>> Authored: Sun Jan 24 11:18:41 2016 -0700
>>>>>>>>>>>>>>> Committer: Ralph Goers <[email protected]>
>>>>>>>>>>>>>>> Committed: Sun Jan 24 11:18:41 2016 -0700
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>>>>>>>>  .../org/apache/logging/log4j/LogManager.java    | 62 
>>>>>>>>>>>>>>> ++++++++++++++++++++
>>>>>>>>>>>>>>>  .../logging/log4j/spi/ShutdownCapable.java      | 17 ++++++
>>>>>>>>>>>>>>>  .../apache/logging/log4j/LogManagerTest.java    |  7 +++
>>>>>>>>>>>>>>>  .../logging/log4j/core/LoggerContext.java       |  8 ++-
>>>>>>>>>>>>>>>  4 files changed, 93 insertions(+), 1 deletion(-)
>>>>>>>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2df3f0e7/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java
>>>>>>>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>>>>>>>> diff --git 
>>>>>>>>>>>>>>> a/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java
>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>> b/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java
>>>>>>>>>>>>>>> index f10e5a8..64c6ee5 100644
>>>>>>>>>>>>>>> --- 
>>>>>>>>>>>>>>> a/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java
>>>>>>>>>>>>>>> +++ 
>>>>>>>>>>>>>>> b/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java
>>>>>>>>>>>>>>> @@ -27,6 +27,7 @@ import 
>>>>>>>>>>>>>>> org.apache.logging.log4j.simple.SimpleLoggerContextFactory;
>>>>>>>>>>>>>>>  import org.apache.logging.log4j.spi.LoggerContext;
>>>>>>>>>>>>>>>  import org.apache.logging.log4j.spi.LoggerContextFactory;
>>>>>>>>>>>>>>>  import org.apache.logging.log4j.spi.Provider;
>>>>>>>>>>>>>>> +import org.apache.logging.log4j.spi.ShutdownCapable;
>>>>>>>>>>>>>>>  import org.apache.logging.log4j.status.StatusLogger;
>>>>>>>>>>>>>>>  import org.apache.logging.log4j.util.LoaderUtil;
>>>>>>>>>>>>>>>  import org.apache.logging.log4j.util.PropertiesUtil;
>>>>>>>>>>>>>>> @@ -285,6 +286,67 @@ public class LogManager {
>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>      /**
>>>>>>>>>>>>>>> +     * Shutdown using the default LoggerContext.
>>>>>>>>>>>>>>> +     * @since 2.6
>>>>>>>>>>>>>>> +     */
>>>>>>>>>>>>>>> +    public static void shutdown() {
>>>>>>>>>>>>>>> +        shutdown(getContext());
>>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>> +    /**
>>>>>>>>>>>>>>> +     * Shutdown the logging system if the logging system 
>>>>>>>>>>>>>>> supports it.
>>>>>>>>>>>>>>> +     * @param currentContext if true the LoggerContext for the 
>>>>>>>>>>>>>>> caller of this method will be used.
>>>>>>>>>>>>>>> +     * @since 2.6
>>>>>>>>>>>>>>> +     */
>>>>>>>>>>>>>>> +    public static void shutdown(boolean currentContext) {
>>>>>>>>>>>>>>> +        shutdown(getContext(currentContext));
>>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>> +    /**
>>>>>>>>>>>>>>> +     * Shutdown the logging system if the logging system 
>>>>>>>>>>>>>>> supports it.
>>>>>>>>>>>>>>> +     * @param loader The ClassLoader for the context. If null 
>>>>>>>>>>>>>>> the context will attempt to determine the appropriate
>>>>>>>>>>>>>>> +     *            ClassLoader.
>>>>>>>>>>>>>>> +     * @param currentContext if false the LoggerContext 
>>>>>>>>>>>>>>> appropriate for the caller of this method will be used.
>>>>>>>>>>>>>>> +     * @since 2.6
>>>>>>>>>>>>>>> +     */
>>>>>>>>>>>>>>> +    public static void shutdown(final ClassLoader loader, 
>>>>>>>>>>>>>>> final boolean currentContext) {
>>>>>>>>>>>>>>> +        shutdown(getContext(loader, currentContext));
>>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>> +    /**
>>>>>>>>>>>>>>> +     * Shutdown the logging system if the logging system 
>>>>>>>>>>>>>>> supports it.
>>>>>>>>>>>>>>> +     * @param context the LoggerContext.
>>>>>>>>>>>>>>> +     * @since 2.6
>>>>>>>>>>>>>>> +     */
>>>>>>>>>>>>>>> +    public static void shutdown(LoggerContext context) {
>>>>>>>>>>>>>>> +        if (context != null && context instanceof 
>>>>>>>>>>>>>>> ShutdownCapable) {
>>>>>>>>>>>>>>> +            ((ShutdownCapable) context).shutdown();
>>>>>>>>>>>>>>> +        }
>>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>> +    /**
>>>>>>>>>>>>>>> +     * Shutdown the logging system if the logging system 
>>>>>>>>>>>>>>> supports it.
>>>>>>>>>>>>>>> +     * @param fqcn The fully qualified class name of the Class 
>>>>>>>>>>>>>>> that this method is a member of.
>>>>>>>>>>>>>>> +     * @param currentContext if false the LoggerContext 
>>>>>>>>>>>>>>> appropriate for the caller of this method will be used.
>>>>>>>>>>>>>>> +     * @since 2.6
>>>>>>>>>>>>>>> +     */
>>>>>>>>>>>>>>> +    protected static void shutdown(final String fqcn, final 
>>>>>>>>>>>>>>> boolean currentContext) {
>>>>>>>>>>>>>>> +        shutdown(getContext(fqcn, currentContext));
>>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>> +    /**
>>>>>>>>>>>>>>> +     * Shutdown the logging system if the logging system 
>>>>>>>>>>>>>>> supports it.
>>>>>>>>>>>>>>> +     * @param fqcn The fully qualified class name of the Class 
>>>>>>>>>>>>>>> that this method is a member of.
>>>>>>>>>>>>>>> +     * @param loader The ClassLoader for the context. If null 
>>>>>>>>>>>>>>> the context will attempt to determine the appropriate
>>>>>>>>>>>>>>> +     *            ClassLoader.
>>>>>>>>>>>>>>> +     * @param currentContext if false the LoggerContext 
>>>>>>>>>>>>>>> appropriate for the caller of this method will be used.
>>>>>>>>>>>>>>> +     * @since 2.6
>>>>>>>>>>>>>>> +     */
>>>>>>>>>>>>>>> +    protected static void shutdown(final String fqcn, final 
>>>>>>>>>>>>>>> ClassLoader loader, final boolean currentContext) {
>>>>>>>>>>>>>>> +        shutdown(getContext(fqcn, loader, currentContext));
>>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>> +    /**
>>>>>>>>>>>>>>>       * Returns the current LoggerContextFactory.
>>>>>>>>>>>>>>>       *
>>>>>>>>>>>>>>>       * @return The LoggerContextFactory.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2df3f0e7/log4j-api/src/main/java/org/apache/logging/log4j/spi/ShutdownCapable.java
>>>>>>>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>>>>>>>> diff --git 
>>>>>>>>>>>>>>> a/log4j-api/src/main/java/org/apache/logging/log4j/spi/ShutdownCapable.java
>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>> b/log4j-api/src/main/java/org/apache/logging/log4j/spi/ShutdownCapable.java
>>>>>>>>>>>>>>> new file mode 100644
>>>>>>>>>>>>>>> index 0000000..a46ef60
>>>>>>>>>>>>>>> --- /dev/null
>>>>>>>>>>>>>>> +++ 
>>>>>>>>>>>>>>> b/log4j-api/src/main/java/org/apache/logging/log4j/spi/ShutdownCapable.java
>>>>>>>>>>>>>>> @@ -0,0 +1,17 @@
>>>>>>>>>>>>>>> +/*
>>>>>>>>>>>>>>> + * Copyright (c) 2016 Nextiva, Inc. to Present.
>>>>>>>>>>>>>>> + * All rights reserved.
>>>>>>>>>>>>>>> + */
>>>>>>>>>>>>>>> +package org.apache.logging.log4j.spi;
>>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>> +/**
>>>>>>>>>>>>>>> + * Interface to be implemented by LoggerContext's that provide 
>>>>>>>>>>>>>>> a shutdown method.
>>>>>>>>>>>>>>> + * @since 2.6
>>>>>>>>>>>>>>> + */
>>>>>>>>>>>>>>> +public interface ShutdownCapable {
>>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>> +    /**
>>>>>>>>>>>>>>> +     * Requests that the logging implementation shut down.
>>>>>>>>>>>>>>> +     */
>>>>>>>>>>>>>>> +    void shutdown();
>>>>>>>>>>>>>>> +}
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2df3f0e7/log4j-api/src/test/java/org/apache/logging/log4j/LogManagerTest.java
>>>>>>>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>>>>>>>> diff --git 
>>>>>>>>>>>>>>> a/log4j-api/src/test/java/org/apache/logging/log4j/LogManagerTest.java
>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>> b/log4j-api/src/test/java/org/apache/logging/log4j/LogManagerTest.java
>>>>>>>>>>>>>>> index 48f0eea..596a9f2 100644
>>>>>>>>>>>>>>> --- 
>>>>>>>>>>>>>>> a/log4j-api/src/test/java/org/apache/logging/log4j/LogManagerTest.java
>>>>>>>>>>>>>>> +++ 
>>>>>>>>>>>>>>> b/log4j-api/src/test/java/org/apache/logging/log4j/LogManagerTest.java
>>>>>>>>>>>>>>> @@ -17,6 +17,7 @@
>>>>>>>>>>>>>>>  package org.apache.logging.log4j;
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>  import 
>>>>>>>>>>>>>>> org.apache.logging.log4j.message.ParameterizedMessageFactory;
>>>>>>>>>>>>>>> +import org.apache.logging.log4j.spi.LoggerContext;
>>>>>>>>>>>>>>>  import org.junit.Test;
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>  import static org.junit.Assert.*;
>>>>>>>>>>>>>>> @@ -53,4 +54,10 @@ public class LogManagerTest {
>>>>>>>>>>>>>>>          assertNotNull("No Logger returned", logger);
>>>>>>>>>>>>>>>          assertTrue("Incorrect Logger name: " + 
>>>>>>>>>>>>>>> logger.getName(),LogManagerTest.class.getName().equals(logger.getName()));
>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>> +    @Test
>>>>>>>>>>>>>>> +    public void testShutdown() {
>>>>>>>>>>>>>>> +        LoggerContext loggerContext = 
>>>>>>>>>>>>>>> LogManager.getContext(false);
>>>>>>>>>>>>>>> +        LogManager.shutdown(loggerContext);
>>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>>>  }
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2df3f0e7/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
>>>>>>>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>>>>>>>> diff --git 
>>>>>>>>>>>>>>> a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>> b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
>>>>>>>>>>>>>>> index 42efbb5..fcdfc16 100644
>>>>>>>>>>>>>>> --- 
>>>>>>>>>>>>>>> a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
>>>>>>>>>>>>>>> +++ 
>>>>>>>>>>>>>>> b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
>>>>>>>>>>>>>>> @@ -45,6 +45,7 @@ import 
>>>>>>>>>>>>>>> org.apache.logging.log4j.message.MessageFactory;
>>>>>>>>>>>>>>>  import org.apache.logging.log4j.spi.AbstractLogger;
>>>>>>>>>>>>>>>  import org.apache.logging.log4j.spi.LoggerContextFactory;
>>>>>>>>>>>>>>>  import org.apache.logging.log4j.spi.LoggerContextKey;
>>>>>>>>>>>>>>> +import org.apache.logging.log4j.spi.ShutdownCapable;
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>  import static 
>>>>>>>>>>>>>>> org.apache.logging.log4j.core.util.ShutdownCallbackRegistry.*;
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> @@ -54,7 +55,7 @@ import static 
>>>>>>>>>>>>>>> org.apache.logging.log4j.core.util.ShutdownCallbackRegistry.*;
>>>>>>>>>>>>>>>   * filters, etc and will be atomically updated whenever a 
>>>>>>>>>>>>>>> reconfigure occurs.
>>>>>>>>>>>>>>>   */
>>>>>>>>>>>>>>>  public class LoggerContext extends AbstractLifeCycle 
>>>>>>>>>>>>>>> implements org.apache.logging.log4j.spi.LoggerContext,
>>>>>>>>>>>>>>> -        ConfigurationListener {
>>>>>>>>>>>>>>> +        ShutdownCapable, ConfigurationListener {
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>      /**
>>>>>>>>>>>>>>>       * Property name of the property change event fired if the 
>>>>>>>>>>>>>>> configuration is changed.
>>>>>>>>>>>>>>> @@ -278,6 +279,11 @@ public class LoggerContext extends 
>>>>>>>>>>>>>>> AbstractLifeCycle implements org.apache.loggi
>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>      @Override
>>>>>>>>>>>>>>> +    public void shutdown() {
>>>>>>>>>>>>>>> +        stop();
>>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>> +    @Override
>>>>>>>>>>>>>>>      public void stop() {
>>>>>>>>>>>>>>>          LOGGER.debug("Stopping LoggerContext[name={}, {}]...", 
>>>>>>>>>>>>>>> getName(), this);
>>>>>>>>>>>>>>>          configLock.lock();
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> -- 
>>>>>>>>>>>> E-Mail: [email protected] | [email protected] 
>>>>>>>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>>>>>>>> JUnit in Action, Second Edition
>>>>>>>>>>>> Spring Batch in Action
>>>>>>>>>>>> Blog: http://garygregory.wordpress.com 
>>>>>>>>>>>> Home: http://garygregory.com/
>>>>>>>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> -- 
>>>>>>>>>>> E-Mail: [email protected] | [email protected] 
>>>>>>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>>>>>>> JUnit in Action, Second Edition
>>>>>>>>>>> Spring Batch in Action
>>>>>>>>>>> Blog: http://garygregory.wordpress.com 
>>>>>>>>>>> Home: http://garygregory.com/
>>>>>>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> -- 
>>>>>>>>> E-Mail: [email protected] | [email protected] 
>>>>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>>>>> JUnit in Action, Second Edition
>>>>>>>>> Spring Batch in Action
>>>>>>>>> Blog: http://garygregory.wordpress.com 
>>>>>>>>> Home: http://garygregory.com/
>>>>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> -- 
>>>>>>> Matt Sicker <[email protected]>
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> Matt Sicker <[email protected]>
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>>  
>>>> 
>>>> Mikael Ståldal
>>>> Senior software developer 
>>>> 
>>>> Magine TV
>>>> [email protected]    
>>>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com 
>>>> 
>>>> Privileged and/or Confidential Information may be contained in this 
>>>> message. If you are not the addressee indicated in this message
>>>> (or responsible for delivery of the message to such a person), you may not 
>>>> copy or deliver this message to anyone. In such case, 
>>>> you should destroy this message and kindly notify the sender by reply 
>>>> email.   
> 
> 
> 
> -- 
>  
> 
> Mikael Ståldal
> Senior software developer 
> 
> Magine TV
> [email protected]    
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com             
> 
> Privileged and/or Confidential Information may be contained in this message. 
> If you are not the addressee indicated in this message
> (or responsible for delivery of the message to such a person), you may not 
> copy or deliver this message to anyone. In such case, 
> you should destroy this message and kindly notify the sender by reply email.  
>  

Reply via email to