[slf4j-dev] [JIRA] (SLF4J-192) Need ability to shutdown loggers and flush appenders
QOS.CH (JIRA)
noreply-jira at qos.ch
Fri Jan 4 19:59:00 CET 2019
[ https://jira.qos.ch/browse/SLF4J-192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=19399#comment-19399 ]
Joachim Durchholz commented on SLF4J-192:
-----------------------------------------
The point is not that shutdown() is a problem, the point is that shutdown doesn't add value.
I have yet to see a convincing counterargument to the latter point. I have seen lots of principles-based arguments, but principles need to be tied to concrete advantages/disadvantages to check that the principle really applies. IOW principles alone are a good first approximation but not enough. (At least that's my perspective. YMMV.)
The application server situation might be such a use case.
I don't see how shutdown() may help with that. That's probably due to a lack of familiarity with logging in application servers, not a counterargument; I would like to see how things get easier if you have a shutdown().
However, I am drawing a counterargument from the AS case: What should the logger implementation do if it gets a shutdown() call? If it's closing shared resources, this is actually NOT what you want: You don't want that a servlet shuts down container resources! If it's closing a per-servlet resource (e.g. because the servlet isn't using the container's logger but its own): then the servlet already knows that it has a specific resource, and we're back at the normal application case.
I would really like to hear where my picture is incomplete.
> Need ability to shutdown loggers and flush appenders
> ----------------------------------------------------
>
> Key: SLF4J-192
> URL: https://jira.qos.ch/browse/SLF4J-192
> Project: SLF4J
> Issue Type: Improvement
> Components: Core API
> Affects Versions: 1.6.x
> Environment: Operating System: All
> Platform: All
> Reporter: Michael Schall
> Assignee: SLF4J developers list
>
> There needs to be a way to shutdown logging and flush async appenders so when a process is closing, all log events are written before the process is closed.
> 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()
> Other back ends - ???
> This is required to allow me to not reference logging back ends explicitly in my code to shutdown successfully without losing events.
> Discussion about this is happening on the user list at -
> http://www.qos.ch/pipermail/logback-user/2010-September/001816.html
--
This message was sent by Atlassian JIRA
(v7.3.1#73012)
More information about the slf4j-dev
mailing list