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

logback StatusListener的定義方法源碼解讀

 更新時(shí)間:2023年11月06日 09:49:17   作者:codecraft  
這篇文章主要為大家介紹了logback StatusListener的定義方法源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

本文主要研究一下logback的StatusListener

StatusListener

ch/qos/logback/core/status/StatusListener.java

/**
 * A StatusListener registered with logback context's {@link StatusManager} will
 * receive notification of every incoming {@link Status status} message.
 * 
 * @author Ceki Gülcü
 */
public interface StatusListener {
    void addStatusEvent(Status status);
}
StatusListener定義了addStatusEvent方法,注冊(cè)到logback上下文的StatusManager的StatusListener將接收每個(gè)傳入狀態(tài)消息

NopStatusListener

ch/qos/logback/core/status/NopStatusListener.java

public class NopStatusListener implements StatusListener {
    public void addStatusEvent(Status status) {
        // nothing to do
    }
}
NopStatusListener實(shí)現(xiàn)了StatusListener,它的addStatusEvent是空操作

OnPrintStreamStatusListenerBase

abstract public class OnPrintStreamStatusListenerBase extends ContextAwareBase implements StatusListener, LifeCycle {
    boolean isStarted = false;
    static final long DEFAULT_RETROSPECTIVE = 300;
    long retrospectiveThresold = DEFAULT_RETROSPECTIVE;
    /**
     * The prefix to place before each status message
     * @since 1.1.10
     */
    String prefix;
    /**
     * The PrintStream used by derived classes
     * @return
     */
    abstract protected PrintStream getPrintStream();
    public void addStatusEvent(Status status) {
        if (!isStarted)
            return;
        print(status);
    }
    private void print(Status status) {
        StringBuilder sb = new StringBuilder();
        if(prefix != null)
            sb.append(prefix);
        StatusPrinter.buildStr(sb, "", status);
        getPrintStream().print(sb);
    }
    //......
}
OnPrintStreamStatusListenerBase聲明實(shí)現(xiàn)了StatusListener接口,它是一個(gè)抽象類,其addStatusEvent方法執(zhí)行print,而print則先添加prefix,再添加status,最后通過getPrintStream抽象方法獲取PrintStream,然后進(jìn)行print

OnConsoleStatusListener

ch/qos/logback/core/status/OnConsoleStatusListener.java

/**
 * Print all new incoming status messages on the console (System.out).
 *
 * @author Ceki Gülcü
 */
public class OnConsoleStatusListener extends OnPrintStreamStatusListenerBase {
    @Override
    protected PrintStream getPrintStream() {
        return System.out;
    }
}
OnConsoleStatusListener繼承了OnPrintStreamStatusListenerBase,其getPrintStream返回的是System.out

OnErrorConsoleStatusListener

ch/qos/logback/core/status/OnErrorConsoleStatusListener.java

/**
 * Print all new incoming status messages on the error console (System.err).
 *
 * @author Ceki Gülcü
 * @since 1.0.8
 */
public class OnErrorConsoleStatusListener extends OnPrintStreamStatusListenerBase {
    @Override
    protected PrintStream getPrintStream() {
        return System.err;
    }
}
OnErrorConsoleStatusListener繼承了OnPrintStreamStatusListenerBase,其getPrintStream返回的是System.err

StatusListenerAsList

ch/qos/logback/core/status/StatusListenerAsList.java

/**
 * Collect all incoming events in a list.
 * 
 * @author Ceki Gülcü
 * 
 */
public class StatusListenerAsList implements StatusListener {
    List<Status> statusList = new ArrayList<Status>();
    public void addStatusEvent(Status status) {
        statusList.add(status);
    }
    public List<Status> getStatusList() {
        return statusList;
    }
}
StatusListenerAsList實(shí)現(xiàn)了StatusListener接口,其addStatusEvent將status添加到statusList

小結(jié)

logback的StatusListener用于打印logback內(nèi)部的status信息,它有NopStatusListener實(shí)現(xiàn)及OnPrintStreamStatusListenerBase的實(shí)現(xiàn)(OnConsoleStatusListenerOnErrorConsoleStatusListener),即往System.out或者err打印。

doc statusListener

以上就是logback StatusListener的定義方法源碼解讀的詳細(xì)內(nèi)容,更多關(guān)于logback StatusListener的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 關(guān)于request.getRequestDispatcher().forward()的妙用及DispatcherType對(duì)Filter配置的影響

    關(guān)于request.getRequestDispatcher().forward()的妙用及DispatcherType

    這篇文章主要介紹了關(guān)于request.getRequestDispatcher().forward()的妙用及DispatcherType對(duì)Filter配置的影響,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java中的字符串替換3中實(shí)現(xiàn)總結(jié)

    Java中的字符串替換3中實(shí)現(xiàn)總結(jié)

    本文詳細(xì)介紹了Java中字符串替換方法,包括replace()、replaceFirst()和replaceAll()的的使用方法和語(yǔ)法格式;并通過實(shí)例展示了如何使用這些方法進(jìn)行字符串替
    2026-04-04
  • eclipse中自動(dòng)生成javadoc文檔的方法

    eclipse中自動(dòng)生成javadoc文檔的方法

    這篇文章主要介紹了eclipse中自動(dòng)生成javadoc文檔的方法,是實(shí)用eclipse開發(fā)Java程序時(shí)非常實(shí)用的技巧,對(duì)于進(jìn)行Java項(xiàng)目開發(fā)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • maven項(xiàng)目引用外部jar包的方法

    maven項(xiàng)目引用外部jar包的方法

    本篇文章主要介紹了maven項(xiàng)目引用外部jar的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • java中String與StringBuilder的區(qū)別

    java中String與StringBuilder的區(qū)別

    本篇文章介紹了,java中String與StringBuilder的區(qū)別。需要的朋友參考下
    2013-04-04
  • 解析整合mybatis-spring需要的maven依賴配置問題

    解析整合mybatis-spring需要的maven依賴配置問題

    這篇文章主要介紹了整合mybatis-spring需要的maven依賴配置問題,創(chuàng)建Maven項(xiàng)目,導(dǎo)入相關(guān)jar包,文中還給大家提到了,解決maven靜態(tài)資源約定大于習(xí)慣問題,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-11-11
  • 使用Spring實(shí)現(xiàn)@Value注入靜態(tài)字段

    使用Spring實(shí)現(xiàn)@Value注入靜態(tài)字段

    這篇文章主要介紹了使用Spring實(shí)現(xiàn)@Value注入靜態(tài)字段方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • RocketMQ 延時(shí)級(jí)別配置方式

    RocketMQ 延時(shí)級(jí)別配置方式

    這篇文章主要介紹了RocketMQ 延時(shí)級(jí)別配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Mybatis延遲加載和緩存深入講解

    Mybatis延遲加載和緩存深入講解

    這篇文章主要給大家介紹了關(guān)于Mybatis延遲加載和緩存的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 在Docker中部署Spring Boot項(xiàng)目過程詳解

    在Docker中部署Spring Boot項(xiàng)目過程詳解

    這篇文章主要介紹了在Docker中部署Spring Boot項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

临泽县| 凯里市| 石首市| 瑞安市| 文登市| 华蓥市| 岳普湖县| 娱乐| 托克托县| 洪洞县| 岳普湖县| 衡山县| 通山县| 平远县| 濮阳县| 光泽县| 资阳市| 通辽市| 冷水江市| 巢湖市| 瑞丽市| 东阿县| 东海县| 鹿泉市| 吉安市| 咸丰县| 大新县| 永年县| 庐江县| 应城市| 丁青县| 盈江县| 边坝县| 岑溪市| 高要市| 白河县| 固阳县| 石泉县| 昭通市| 城固县| 都匀市|