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

Lombok的@CustomLog流暢的公司多場景日志

 更新時間:2023年02月02日 08:36:31   作者:小龍_GO  
這篇文章主要為大家介紹了Lombok的@CustomLog流暢的公司多場景日志開發(fā)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

開發(fā)環(huán)境

  • JDK 1.8
  • Lombok - 1.18.16

背景

公司因為開源節(jié)流需要,需要區(qū)分重要日志和非重要日志,一個月光日志的費用有30w之多確實恐怖了一些(PS:夠幾十個程序員的工資了)。所以,公司要求將日志區(qū)分開,去除一些非必要的日志,記錄的日志也最多保留15天,重要日志30天。

為了區(qū)分場景日志,單獨搞了個Logger日志記錄器來采集日志,為了繼續(xù)用注解的方式在項目中,這時就需要@CustomLog注解了,方便的將多個日志記錄器集成在一起,話不多說,開干!

如果在項目中直接使用@CustomLog注解,你會看到如下圖的報錯信息:

這個時候需要添加配置文件lombok.config,在項目中就可以直接使用了!

特別注意:配置文件的位置需要在@CustomLog注解所在文件的上層目錄,我為了方便通常直接放在模塊的根目錄項目的根目錄進行使用。

添加的配置信息如下:

lombok.log.custom.declaration=com.lombok.log.IntegrationLog com.lombok.log.IntegrationLog.getLogger(TYPE)

注意,com.lombok.log.IntegrationLog com.lombok.log.IntegrationLog.getLogger(TYPE)中間是有空格的,這樣才能生效。至于getLogger的小括號內(nèi)部,有兩個值可以使用,分別是TYPE(類的類型)NAME(類的名稱)。

TYPE方式生成的代碼

private static final IntegrationLog log = IntegrationLog.getLogger(LogPrintService.class);

NAME方式生成的代碼

private static final IntegrationLog log = IntegrationLog.getLogger("com.lombok.service.LogPrintService");

配置成功的前提,是你的類要符合配置要求,也就是按照lombok的規(guī)范去定義類即可。

代碼部分

為了方便鑒將多個日志記錄器放在一起,必然需要一個集成類,這里我定義一個名為IntegrationLog的類,除了默認的Logger日志對象,還有一個業(yè)務記錄器對象BusinessLog,用于記錄比較重要的日志。當定義好此類后,完成上述的配置即可。

public class IntegrationLog {
    private final Logger logger;
    private final BusinessLog bizLogger;
    private IntegrationLog(Class<?> clazz) {
        this.logger = LoggerFactory.getLogger(clazz);
        this.bizLogger = BusinessLog.getLogger(clazz);
    }
    public static IntegrationLog getLogger(Class<?> clazz) {
        return new IntegrationLog(clazz);
    }
    public void info(String format, Object... args) {
        logger.info(format, args);
    }
    public void bizInfo(String format, Object... args) {
        bizLogger.info(format, args);
    }
}

再看看注解使用的代碼部分

代碼中我們就可以暢快的使用了,一個log對象包括了我們想要的方法。

@CustomLog
public class LogPrintService {
    public void printLog() {
        log.bizInfo("需要多付錢的日志");
        log.info("默認日志");
    }
}

通過查看源碼,就可以看到Lombok給我們生成了什么樣的代碼:

public class LogPrintService {
    private static final IntegrationLog log = IntegrationLog.getLogger(LogPrintService.class);
    public LogPrintService() {
    }
    public void printLog() {
        log.bizInfo("哈哈哈哈", new Object[0]);
    }
}

其實Lombok做的事情,就是幫我們創(chuàng)建了一個實例,簡單易懂。

參考文獻

Lombok的Log介紹 - projectlombok.org/features/lo…

以上就是Lombok的@CustomLog流暢的公司多場景日志的詳細內(nèi)容,更多關(guān)于Lombok @CustomLog多場景日志的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JPA與mybatis-plus不兼容問題的解決

    JPA與mybatis-plus不兼容問題的解決

    本文主要介紹了JPA與mybatis-plus不兼容問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • 詳解Java線程堆棧

    詳解Java線程堆棧

    本篇文章主要給大家講了Java線程堆棧的詳細原理以及用法,需要的朋友跟著學習下吧。
    2017-12-12
  • 簡單闡述一下Java集合的概要

    簡單闡述一下Java集合的概要

    今天給大家?guī)淼奈恼率顷P(guān)于Java的相關(guān)知識,文章圍繞著Java集合的概要展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 詳解Spring注解驅(qū)動開發(fā)之屬性賦值

    詳解Spring注解驅(qū)動開發(fā)之屬性賦值

    今天帶大家學習Spring注解驅(qū)動開發(fā)的相關(guān)知識,文中有非常詳細的代碼示例,對正在學習Java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • Java使用云片API發(fā)送短信驗證碼

    Java使用云片API發(fā)送短信驗證碼

    這篇文章主要介紹了Java使用云片API發(fā)送短信驗證碼,主要用的是Java實現(xiàn)短信驗證碼。需要的朋友可以參考下
    2017-02-02
  • springboot版本升級以及解決springsecurity漏洞的問題

    springboot版本升級以及解決springsecurity漏洞的問題

    這篇文章主要介紹了springboot版本升級以及解決springsecurity漏洞的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Spring中Bean注入源碼示例解析

    Spring中Bean注入源碼示例解析

    這篇文章主要為大家介紹了Spring中Bean注入源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Java實現(xiàn)map轉(zhuǎn)換成json的方法詳解

    Java實現(xiàn)map轉(zhuǎn)換成json的方法詳解

    這篇文章主要為大家詳細介紹了Java語言實現(xiàn)map轉(zhuǎn)換成json的幾種方法,文中的示例代碼講解詳細,對我們學習Java有一定幫助,需要的可以參考一下
    2022-05-05
  • 基于Spring的RPC通訊模型的使用與比較

    基于Spring的RPC通訊模型的使用與比較

    這篇文章主要介紹了基于Spring的RPC通訊模型的使用與比較,詳細的介紹了RMI、Caucho的Hessian和Burlap以及Spring自帶的HTTP invoker,感興趣的可以了解一下
    2018-09-09
  • Springboot如何使用@Async實現(xiàn)異步任務

    Springboot如何使用@Async實現(xiàn)異步任務

    這篇文章主要介紹了Springboot如何使用@Async實現(xiàn)異步任務問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論

屯门区| 昭通市| 依兰县| 河源市| 大洼县| 美姑县| 新巴尔虎右旗| 墨江| 新干县| 米脂县| 临西县| 延庆县| 邯郸市| 星座| 呼图壁县| 进贤县| 固始县| 五莲县| 高密市| 海安县| 大悟县| 永嘉县| 通化县| 玛多县| 姚安县| 汝南县| 双鸭山市| 营口市| 宾川县| 滕州市| 连南| 北碚区| 彰武县| 玛纳斯县| 佛山市| 沧源| 连城县| 从化市| 榆林市| 宁河县| 高淳县|