[logback-user] How to stop all appenders?

Michael Schall mike.schall at gmail.com
Wed Sep 29 18:30:11 CEST 2010


Are you suggesting a close method on ILogger?  We use a static logger per
class.  I don't want to have to close each logger separately.  I would like
a master shutoff switch that will synchronously flush all appenders so I can
call it before exiting my app.  The ILoggerFactory seems like the perfect
spot for this.

On Wed, Sep 29, 2010 at 10:42 AM, Chris <shef31 at yahoo.com> wrote:

> I think the right solution is to add a logger.close() method to slf4j. Each
> implementation could handle it in its own way. For logback or log4j, it
> would just call stop() on each of the appenders that were attached to the
> logger.
>
>
>
>
> On 9/29/2010 10:23 AM, 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
>>>>    <mailto:Logback-user at qos.ch>
>>>>
>>>>    http://qos.ch/mailman/listinfo/logback-user
>>>>
>>>>     _______________________________________________
>>>    Logback-user mailing list
>>>    Logback-user at qos.ch
>>>    <mailto:Logback-user at qos.ch>
>>>
>>>    http://qos.ch/mailman/listinfo/logback-user
>>>
>>
>>
>>    _______________________________________________
>>    Logback-user mailing list
>>    Logback-user at qos.ch
>>    <mailto:Logback-user at qos.ch>
>>
>>    http://qos.ch/mailman/listinfo/logback-user
>>
>>
>>
>>
>> _______________________________________________
>> Logback-user mailing list
>> Logback-user at qos.ch
>> http://qos.ch/mailman/listinfo/logback-user
>>
>
>
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://qos.ch/mailman/listinfo/logback-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://qos.ch/pipermail/logback-user/attachments/20100929/a1a83696/attachment.html>


More information about the Logback-user mailing list