logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remko Popma <remko.po...@gmail.com>
Subject Re: logging-log4j2 git commit: LOG4J2-124 - Add shutdown methods to LogManager
Date Wed, 27 Jan 2016 15:04:44 GMT
Nice!

Sent from my iPhone

> On 2016/01/27, at 22:27, Mikael Ståldal <mikael.staldal@magine.com> wrote:
> 
> OK, also done.
> 
>> On Wed, Jan 27, 2016 at 2:07 PM, Remko Popma <remko.popma@gmail.com> wrote:
>> 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 <mikael.staldal@magine.com> wrote:
>>> 
>>> OK, done.
>>> 
>>>> On Wed, Jan 27, 2016 at 6:17 AM, Remko Popma <remko.popma@gmail.com>
wrote:
>>>> Mikael, feel free to update the javadoc when you have time. 
>>>> 
>>>> 
>>>>> On Wednesday, 27 January 2016, Remko Popma <remko.popma@gmail.com>
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 <mikael.staldal@magine.com>
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 <boards@gmail.com>
wrote:
>>>>>>> I like it!
>>>>>>> 
>>>>>>>> On 25 January 2016 at 18:23, Ralph Goers <ralph.goers@dslextreme.com>
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 <boards@gmail.com>
wrote:
>>>>>>>>> 
>>>>>>>>> How about Terminable? It's even a real word to boot.
>>>>>>>>> 
>>>>>>>>> On 25 January 2016 at 18:15, Ralph Goers <ralph.goers@dslextreme.com>
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 <garydgregory@gmail.com>
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
<ralph.goers@dslextreme.com> 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
<garydgregory@gmail.com> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Sun, Jan 24, 2016 at 10:07 PM,
Gary Gregory <garydgregory@gmail.com> wrote:
>>>>>>>>>>>>>>> On Sun, Jan 24, 2016 at 1:54
PM, Ralph Goers <ralph.goers@dslextreme.com> 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 <garydgregory@gmail.com> wrote:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Resending, got a error from
my phone...
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> ---------- Forwarded message
----------
>>>>>>>>>>>>>>>> From: "Gary Gregory" <garydgregory@gmail.com>
>>>>>>>>>>>>>>>> Date: Jan 24, 2016 1:41 PM
>>>>>>>>>>>>>>>> Subject: Re: logging-log4j2
git commit: LOG4J2-124 - Add shutdown methods to LogManager
>>>>>>>>>>>>>>>> To: <dev@logging.apache.org>
>>>>>>>>>>>>>>>> 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, <rgoers@apache.org> 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 <rgoers@nextiva.com>
>>>>>>>>>>>>>>>>> Authored: Sun Jan 24
11:18:41 2016 -0700
>>>>>>>>>>>>>>>>> Committer: Ralph Goers
<rgoers@nextiva.com>
>>>>>>>>>>>>>>>>> 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: garydgregory@gmail.com |
ggregory@apache.org 
>>>>>>>>>>>>>> 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: garydgregory@gmail.com | ggregory@apache.org

>>>>>>>>>>>>> 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: garydgregory@gmail.com | ggregory@apache.org

>>>>>>>>>>> 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 <boards@gmail.com>
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> -- 
>>>>>>> Matt Sicker <boards@gmail.com>
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> -- 
>>>>>>  
>>>>>> 
>>>>>> Mikael Ståldal
>>>>>> Senior software developer 
>>>>>> 
>>>>>> Magine TV
>>>>>> mikael.staldal@magine.com    
>>>>>> 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
>>> mikael.staldal@magine.com    
>>> 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
> mikael.staldal@magine.com    
> 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.   

Mime
View raw message