[logback-user] How to stop all appenders?

Joern Huxhorn jhuxhorn at googlemail.com
Sat Oct 2 00:47:57 CEST 2010


Hi Michael,
You could use reflection to make the necessary calls in case of Logback, thus preventing a direct dependency on Logback.
Alternatively, you could put the logback-specific code into a separate module so that the dependency is limited to that module instead of the rest of your application.

HTH & Cheers,
Joern.

On 01.10.2010, at 20:42, Ceki Gülcü wrote:

> 
> 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?
> 
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://qos.ch/mailman/listinfo/logback-user



More information about the Logback-user mailing list