[logback-user] How to stop all appenders?

Ceki Gülcü ceki at qos.ch
Fri Oct 1 20:42:28 CEST 2010


Hello Michael,

SLF4J does not allow one to close appenders. Moreover, there is no plan 
to add such capability. I am afraid you will have to write one or two 
lines of framework specific code in your application.

On 29/09/2010 5:23 PM, Michael Schall wrote:
> This requires me to have access to ch.qos.logback.classic
> when writing code.  It does not allow me to switch loggers out without
> changing code.
>
> We are in the process of moving from log4j to logback.  One requirement
> placed on me is to be able to revert back to log4j if something "goes
> wrong".  I was hoping that using SLF4J would give me this ability.

> I'm trying to achieve writing code only using SLF4J and...
>
> if slf4j-log4j12-1.6.1.jar and log4j-1.2.15.jar are in my production
> classpath, I'm logging using log4j.
> If log4j-over-slf4j-1.6.1.jar (for third-party
> logging), logback-classic-0.9.24.jar, and logback-core-0.9.24.jar are in
> my production classpath, I'm logging using logback.
>
> So without changing code, I can switch between logging back ends.
>
> Should ILoggerFactory have a shutdown or stop method?  It could shutdown
> whatever logging back end I'm using?
>
> For log4j it would call
> - org.apache.log4j.LogManager.getLoggerRepository().shutdown();
> For logback it would call - loggerContext.stop()
>
> Thoughts?
> Mike
>
> On Tue, Sep 28, 2010 at 4:02 PM, Robert Elliot <rob at lidalia.org.uk
> <mailto:rob at lidalia.org.uk>> wrote:
>
>     How about LoggerContext.stop()?  It looks as if it's designed
>     specifically for this purpose.  It recursively stops and detaches
>     all appenders, amongst other things.
>
>     (You can cast the result of LoggerFactory.getILoggerFactory() to a
>     LoggerContext).
>
>     On 28 Sep 2010, at 21:53, Michael Schall wrote:
>
>>     Great question!  I asked this on stackoverflow a while back with no
>>     real answers...
>>
>>     http://stackoverflow.com/questions/3678755/do-i-need-to-flush-events-when-shutting-down-using-logback
>>
>>     On Tue, Sep 28, 2010 at 3:32 PM, Chris <shef31 at yahoo.com
>>     <mailto:shef31 at yahoo.com>> wrote:
>>>     I'm using file appenders. At a certain point in my app, a little
>>>     before
>>>     shutdown, I have to close all loggers.
>>>
>>>     How do I tell logback to call stop() on all appenders?



More information about the Logback-user mailing list