You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Ralph Goers (JIRA)" <ji...@apache.org> on 2016/08/23 00:01:43 UTC

[jira] [Commented] (LOG4J2-1539) Add Core API Configurator.shutdown(LoggerContext, long, TimeUnit)

    [ https://issues.apache.org/jira/browse/LOG4J2-1539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15431822#comment-15431822 ] 

Ralph Goers commented on LOG4J2-1539:
-------------------------------------

I dislike the patch because of the call to LoggerContext.getContext(false) from AbstractManager.  Actually, I dislike the currentContext flag because it is confusing, but that is a different story.  We really do need to inject Manager's with their LoggerContext. I ran into this same problem when I was working on creating a ThreadLocal repository so we could properly clean them up. But I fear using the getContext() method may not always return the correct result.

> 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 message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org