No reason you can't do both. Close an individual logger when you need to, close them all when you need to.

On 9/29/2010 11:30 AM, Michael Schall wrote:
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
<[email protected]
<mailto:[email protected]>> 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
        <[email protected]
        <mailto:[email protected]>
        <mailto:[email protected]
        <mailto:[email protected]>>> 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
            <[email protected]
            <mailto:[email protected]>
            <mailto:[email protected]
            <mailto:[email protected]>>> 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
                [email protected]
                <mailto:[email protected]>
                <mailto:[email protected]
                <mailto:[email protected]>>

                http://qos.ch/mailman/listinfo/logback-user

                _______________________________________________
                Logback-user mailing list
            [email protected]
            <mailto:[email protected]>
            <mailto:[email protected]
            <mailto:[email protected]>>

            http://qos.ch/mailman/listinfo/logback-user



            _______________________________________________
            Logback-user mailing list
        [email protected]
        <mailto:[email protected]>
        <mailto:[email protected]
        <mailto:[email protected]>>

        http://qos.ch/mailman/listinfo/logback-user




        _______________________________________________
        Logback-user mailing list
        [email protected]
        <mailto:[email protected]>
        http://qos.ch/mailman/listinfo/logback-user



    _______________________________________________
    Logback-user mailing list
    [email protected] <mailto:[email protected]>
    http://qos.ch/mailman/listinfo/logback-user




_______________________________________________
Logback-user mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-user


_______________________________________________
Logback-user mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-user

Reply via email to