<html>
    <head>
      <base href="http://bugzilla.slf4j.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_REOPENED "
   title="REOPENED --- - Need ability to shutdown loggers and flush appenders"
   href="http://bugzilla.slf4j.org/show_bug.cgi?id=201#c10">Comment # 10</a>
              on <a class="bz_bug_link 
          bz_status_REOPENED "
   title="REOPENED --- - Need ability to shutdown loggers and flush appenders"
   href="http://bugzilla.slf4j.org/show_bug.cgi?id=201">bug 201</a>
              from <span class="vcard"><a class="email" href="mailto:robert@teviotia.co.uk" title="Robert Elliot <robert@teviotia.co.uk>"> <span class="fn">Robert Elliot</span></a>
</span></b>
        <pre>import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.LoggerContext;

((LoggerContext) LoggerFactory.getILoggerFactory()).stop();

The last thing I want is a library that depends only on SLF4J being able to
stop logging because its writer wrongly supposed that application that brings
it in would ever want to log after that point. It's the same error that leads
libraries to try and set logger levels or (worse!) configure their own
appenders.

SLF4J is not an abstraction across all things a logging system might want to
do, it is particularly an abstraction over the concern of sending messages to a
logging system. The fact that it doesn't expose an API to do those other things
is a strength - I know that if I bring in a library that depends only on SLF4J
it won't do anything dumb.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>