最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

logback的ShutdownHook關(guān)閉原理解析

 更新時(shí)間:2023年11月09日 08:36:50   作者:codecraft  
這篇文章主要為大家介紹了logback的ShutdownHook關(guān)閉原理源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

本文主要研究一下logback的ShutdownHook

ShutdownHook

ch/qos/logback/core/hook/ShutdownHook.java

/**
 * Interface describing a logback shutdown hook implementation
 * 
 * @author Mike Reinhold
 */
public interface ShutdownHook extends Runnable, ContextAware {
}
ShutdownHook接口繼承了Runnable、ContextAware接口

ShutdownHookBase

ch/qos/logback/core/hook/ShutdownHookBase.java

/**
 * Base class for classes implementing a Logback ShutdownHook via extension
 *
 * @author Mike Reinhold
 */
public abstract class ShutdownHookBase extends ContextAwareBase implements ShutdownHook {
    public ShutdownHookBase() {
    }
    /**
     * Default method for stopping the Logback context
     */
    protected void stop() {
        addInfo("Logback context being closed via shutdown hook");
        Context hookContext = getContext();
        if (hookContext instanceof ContextBase) {
            ContextBase context = (ContextBase) hookContext;
            context.stop();
        }
    }
}
ShutdownHookBase繼承了ContextAwareBase,聲明實(shí)現(xiàn)ShutdownHook,它提供了一個(gè)stop方法,用于關(guān)閉ContextBase

DelayingShutdownHook

ch/qos/logback/core/hook/DelayingShutdownHook.java

/**
 * ShutdownHook implementation that stops the Logback context after a specified
 * delay.  The default delay is 0 ms (zero).
 *
 * @author Mike Reinhold
 */
public class DelayingShutdownHook extends ShutdownHookBase {
    /**
     * The default is no delay before shutdown.
     */
    public static final Duration DEFAULT_DELAY = Duration.buildByMilliseconds(0);
    /**
     * The delay in milliseconds before the ShutdownHook stops the logback context
     */
    private Duration delay = DEFAULT_DELAY;
    public DelayingShutdownHook() {
    }
    public Duration getDelay() {
        return delay;
    }
    /**
     * The duration to wait before shutting down the current logback context.
     *
     * @param delay
     */
    public void setDelay(Duration delay) {
        this.delay = delay;
    }
    public void run() {
        addInfo("Sleeping for "+delay);
        try {
            Thread.sleep(delay.getMilliseconds());
        } catch (InterruptedException e) {
        }
        super.stop();
    }
}
DelayingShutdownHook繼承了ShutdownHookBase,其run方法先sleep指定的delay,然后執(zhí)行stop方法

示例

<configuration debug="false">
    <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook">
        <delay>10</delay>
    </shutdownHook>
    <appender name="A" class="ch.qos.logback.core.read.ListAppender"/>
    <root level="DEBUG">
        <appender-ref ref="A" />
    </root>
</configuration>

小結(jié)

logback的ShutdownHook接口繼承了Runnable、ContextAware接口,它有一個(gè)抽象類ShutdownHookBase提供了一個(gè)stop方法,用于關(guān)閉ContextBase,它的子類為DelayingShutdownHook,可以延遲指定時(shí)間再關(guān)閉ContextBase。

以上就是logback的ShutdownHook的詳細(xì)內(nèi)容,更多關(guān)于logback ShutdownHook的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

林甸县| 宁德市| 仙游县| 石泉县| 都安| 天峨县| 宝应县| 肇源县| 南丰县| 武清区| 涡阳县| 武义县| 合作市| 浑源县| 保定市| 孝昌县| 清远市| 莎车县| 东乡族自治县| 武冈市| 灵宝市| 高唐县| 罗山县| 莱州市| 磐安县| 夹江县| 新余市| 兴和县| 元朗区| 隆回县| 延川县| 长沙县| 宜川县| 永登县| 夏邑县| 大方县| 剑阁县| 黑河市| 辽中县| 榆林市| 望谟县|