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

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

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

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

  • JDK 1.8
  • Lombok - 1.18.16

背景

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

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

如果在項(xiàng)目中直接使用@CustomLog注解,你會(huì)看到如下圖的報(bào)錯(cuò)信息:

這個(gè)時(shí)候需要添加配置文件lombok.config,在項(xiàng)目中就可以直接使用了!

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

添加的配置信息如下:

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)部,有兩個(gè)值可以使用,分別是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ī)范去定義類即可。

代碼部分

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

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);
    }
}

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

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

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

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

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

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

參考文獻(xiàn)

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

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

相關(guān)文章

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

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

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

    詳解Java線程堆棧

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

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

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

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

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

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

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

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

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

    Spring中Bean注入源碼示例解析

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

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

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

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

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

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

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

最新評論

比如县| 靖边县| 庆云县| 海阳市| 清新县| 揭西县| 连云港市| 苏尼特右旗| 通化市| 松潘县| 武宣县| 台山市| 峨眉山市| 尚义县| 密云县| 曲周县| 论坛| 长顺县| 马公市| 呼和浩特市| 双辽市| 黄浦区| 禹州市| 晋中市| 五峰| 金堂县| 大同县| 丽江市| 吉林市| 柘城县| 那坡县| 北碚区| 乌海市| 利川市| 伊金霍洛旗| 新乡县| 太白县| 扶余县| 三明市| 买车| 赤城县|