Description
Add Core API Configurator.shutdown(LoggerContext, long, TimeUnit):
/** * 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)
Clarify the existing Javadoc for shutdown(LoggerContext as:
/** * 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)
This also eliminates all intermittent failures in rollover unit tests like org.apache.logging.log4j.core.appender.rolling.RollingAppenderCronTest.testAppender.
Attachments
Attachments
Issue Links
- breaks
-
LOG4J2-1591 New method on LifeCycle interface breaks binary compatibility
- Closed
- is related to
-
LOG4J2-1540 The Core AbstractManager should track its LoggerContext
- Resolved
-
LOG4J2-1547 The Core AbstractConfiguration should track its LoggerContext and add Configuration.getLoggerContext()
- Resolved
- relates to
-
LOG4J2-1624 KafkaAppender get shutdown timeout 0
- Closed
-
LOG4J2-1625 FlumeAppender get shutdown timeout 0
- Closed
-
LOG4J2-1623 Configurable JVM shutdown hook timeout
- Closed