[
https://issues.apache.org/jira/browse/LOG4J2-1539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15431942#comment-15431942
]
Gary Gregory commented on LOG4J2-1539:
--------------------------------------
OK, understood. Is there a type of change you had in mind?
Looking... If AbstractManager is to hold a (final?) ivar of type LoggerContext,
it will have to come from somewhere like the Appender that creates that manager.
Where does the Appender instance get its LC? The plugin instance creation logic
could/should feed it in?
Does that mean that org.apache.logging.log4j.core.util.Builder<T>.build()
should become build(LoggerContext)?
> Add Core API Configurator.shutdown(LoggerContext, long, TimeUnit)
> -----------------------------------------------------------------
>
> Key: LOG4J2-1539
> URL: https://issues.apache.org/jira/browse/LOG4J2-1539
> Project: Log4j 2
> Issue Type: New Feature
> Components: Core
> Reporter: Gary Gregory
> Fix For: 2.7
>
> Attachments: logging-log4j2.patch
>
>
> Add Core API Configurator.shutdown(LoggerContext, long, TimeUnit):
> {code:java}
> /**
> * Blocks until all Log4j tasks have completed execution after a shutdown
> request, or the timeout occurs, or the
> * current thread is interrupted, whichever happens first.
> * <p>
> * Log4j can start threads to perform certain actions like file
> rollovers, calling this method with a timeout will
> * block until the rollover thread is done.
> * </p>
> *
> * @param ctx
> * the logger context to shut down, may be null.
> * @param timeout
> * the maximum time to wait
> * @param timeUnit
> * the time unit of the timeout argument
> * @return {@code true} if the logger context terminated and {@code
> false} if the timeout elapsed before
> * termination.
> */
> public static boolean shutdown(final LoggerContext ctx, final long
> timeout, final TimeUnit timeUnit)
> {code}
> Clarify the existing Javadoc for {{shutdown(LoggerContext}} as:
> {code:java}
> /**
> * Shuts down the given logger context. This request does not wait for
> Log4j tasks to complete.
> * <p>
> * Log4j starts threads to perform certain actions like file rollovers;
> calling this method will not wait until the
> * rollover thread is done. When this method returns, these tasks' status
> are undefined, the tasks may be done or
> * not.
> * </p>
> *
> * @param ctx
> * the logger context to shut down, may be null.
> */
> public static void shutdown(final LoggerContext ctx)
> {code}
> This also eliminates all intermittent failures in rollover unit tests like
> {{org.apache.logging.log4j.core.appender.rolling.RollingAppenderCronTest.testAppender}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]