[
https://issues.apache.org/jira/browse/LOG4J2-658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14106067#comment-14106067
]
Matt Sicker commented on LOG4J2-658:
------------------------------------
The theory I have behind taking the very last possible shutdown slot is that
there are use cases where you don't want logging to be stopped until everything
is shut down. Being able to delay this until after everything has had a chance
to shut down and clean up means that no log events will be lost (unless perhaps
the process is kill-9'd).
Think of it this way: many developers use server containers like Tomcat, Jetty,
JBoss, Weblogic, etc., which all use {{Runtime.getRuntime().addShutdownHook()}}
as it is. They each provide their own proprietary method to adding your own
hooks into their shutdown hook so that you get a more predictable shutdown hook
ordering.
What's neat about providing a custom strategy (not just the OpenJdk one I
wrote) is that it allows for exotic shutdown strategies such as using a
PriorityQueue to order the shutdown hooks and other customizable behavior.
Plus, it makes it that much easier for server containers to use Log4j 2 as
their main logging system by simply providing their own implementation of the
strategy.
> shutdown hook called too early
> ------------------------------
>
> Key: LOG4J2-658
> URL: https://issues.apache.org/jira/browse/LOG4J2-658
> Project: Log4j 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.0-rc1, 2.0-rc2, 2.0.2
> Reporter: Romain Manni-Bucau
> Assignee: Matt Sicker
>
> Hi
> this issue follow few mail exchanges from the commons list. Here the
> interesting part for log4j2:
> {quote}
> Here what I do (we can move it to another thread since that's 100% log4j2
> related):
> unzip apache-tomee-1.7.0-SNAPSHOT-webprofile.zip &&
> cd apache-tomee-webprofile-1.7.0-SNAPSHOT/ &&
> rm conf/logging.properties &&
> echo 'openejb.log.factory=log4j'>conf/system.properties &&
> cp ~/log4j2.xml conf/log4j2.xml &&
> cp
> ~/.m2/repository/org/apache/logging/log4j/log4j-api/2.0-rc2-SNAPSHOT/log4j-api-2.0-rc2-SNAPSHOT.jar
> lib/ &&
> cp
> ~/.m2/repository/org/apache/logging/log4j/log4j-core/2.0-rc2-SNAPSHOT/log4j-core-2.0-rc2-SNAPSHOT.jar
> lib/ &&
> cp
> ~/.m2/repository/org/apache/logging/log4j/log4j-1.2-api/2.0-rc2-SNAPSHOT/log4j-1.2-api-2.0-rc2-SNAPSHOT.jar
> lib/ &&
> ./bin/catalina.sh
> it makes server starting with log4j2 logs, if you ctrl+c logs are not
> printed. Sure it is cause context is closed too early and then loggers have
> NullConfiguration. (If I debug in java.lang.ApplicationShutdownHooks#runHooks
> to wait all hooks exec it works)
> {quote}
> Basically the issue is that when shutting down with ctrl+C some logs are
> swallowed.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]