亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

logback StatusListener的定義方法源碼解讀

 更新時間: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方法,注冊到logback上下文的StatusManager的StatusListener將接收每個傳入狀態(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接口,它是一個抽象類,其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的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Java如何優(yōu)雅的實(shí)現(xiàn)異常捕獲

    詳解Java如何優(yōu)雅的實(shí)現(xiàn)異常捕獲

    在一個優(yōu)秀的項(xiàng)目中一定少不了對程序流程良好的異常捕獲與日志打印,所以本文主要為大家介紹了如何優(yōu)雅的實(shí)現(xiàn)異常捕獲與日志打印輸出,有需要的可以參考下
    2023-09-09
  • 在SpringBoot項(xiàng)目中的使用Swagger的方法示例

    在SpringBoot項(xiàng)目中的使用Swagger的方法示例

    這篇文章主要介紹了在SpringBoot項(xiàng)目中的使用Swagger的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Spring Boot Actuator監(jiān)控的簡單使用方法示例代碼詳解

    Spring Boot Actuator監(jiān)控的簡單使用方法示例代碼詳解

    這篇文章主要介紹了Spring Boot Actuator監(jiān)控的簡單使用,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 在Spring Data JPA中引入Querydsl的實(shí)現(xiàn)方式

    在Spring Data JPA中引入Querydsl的實(shí)現(xiàn)方式

    這篇文章主要介紹了在Spring Data JPA中引入Querydsl的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Java截取字符串的幾種常用方法

    Java截取字符串的幾種常用方法

    這篇文章主要給大家介紹了關(guān)于Java截取字符串的幾種常用方法,在Java編程語言中,String類提供了用于操作字符串的豐富方法,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • Spring Boot中自定義注解結(jié)合AOP實(shí)現(xiàn)主備庫切換問題

    Spring Boot中自定義注解結(jié)合AOP實(shí)現(xiàn)主備庫切換問題

    這篇文章主要介紹了Spring Boot中自定義注解+AOP實(shí)現(xiàn)主備庫切換的相關(guān)知識,本篇文章的場景是做調(diào)度中心和監(jiān)控中心時的需求,后端使用TDDL實(shí)現(xiàn)分表分庫,需要的朋友可以參考下
    2019-08-08
  • Java util.List如何實(shí)現(xiàn)列表分段處理

    Java util.List如何實(shí)現(xiàn)列表分段處理

    這篇文章主要介紹了Java util.List如何實(shí)現(xiàn)列表分段處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot集成antlr實(shí)現(xiàn)詞法和語法分析

    SpringBoot集成antlr實(shí)現(xiàn)詞法和語法分析

    Antlr4 是一款強(qiáng)大的語法生成器工具,可用于讀取、處理、執(zhí)行和翻譯結(jié)構(gòu)化的文本或二進(jìn)制文件,基本上是當(dāng)前 Java 語言中使用最為廣泛的語法生成器工具,本文給大家介紹了SpringBoot集成antlr實(shí)現(xiàn)詞法和語法分析,需要的朋友可以參考下
    2024-06-06
  • Java布爾值Boolean和boolean之間轉(zhuǎn)換實(shí)例用法

    Java布爾值Boolean和boolean之間轉(zhuǎn)換實(shí)例用法

    在本篇文章里小編給大家整理的是一篇關(guān)于Java布爾值Boolean和boolean之間轉(zhuǎn)換實(shí)例用法內(nèi)容,有需要的朋友們跟著學(xué)習(xí)參考下。
    2021-06-06
  • Springboot實(shí)現(xiàn)頁面間跳轉(zhuǎn)功能

    Springboot實(shí)現(xiàn)頁面間跳轉(zhuǎn)功能

    這篇文章主要介紹了Springboot實(shí)現(xiàn)頁面間跳轉(zhuǎn)功能,本文給大家分享兩種方式,方法一和方法二是不沖突的,但是通常情況下如果用方法二addViewControllers,需要把方法一所寫的Controller類給注釋掉,需要的朋友可以參考下
    2023-10-10

最新評論