欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • 一次詭異的full gc查找問題全過程

    一次詭異的full gc查找問題全過程

    這篇文章主要給大家分享介紹了一次詭異的full gc查找問題全部過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧啊
    2018-11-11
  • spring boot+mybatis 多數(shù)據(jù)源切換(實例講解)

    spring boot+mybatis 多數(shù)據(jù)源切換(實例講解)

    下面小編就為大家?guī)硪黄猻pring boot+mybatis 多數(shù)據(jù)源切換(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 使用httpclient無需證書調(diào)用https的示例(java調(diào)用https)

    使用httpclient無需證書調(diào)用https的示例(java調(diào)用https)

    這篇文章主要介紹了使用httpclient無需證書調(diào)用https的示例(java調(diào)用https),需要的朋友可以參考下
    2014-04-04
  • SpringBoot-application.yml多環(huán)境配置詳解

    SpringBoot-application.yml多環(huán)境配置詳解

    本文主要介紹了SpringBoot-application.yml多環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • springboot項目連接多種數(shù)據(jù)庫該如何操作詳析

    springboot項目連接多種數(shù)據(jù)庫該如何操作詳析

    在Spring Boot應用中連接多個數(shù)據(jù)庫或數(shù)據(jù)源可以使用多種方式,下面這篇文章主要給大家介紹了關(guān)于springboot項目連接多種數(shù)據(jù)庫該如何操作的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-08-08
  • 在zuulFilter中注入bean失敗的解決方案

    在zuulFilter中注入bean失敗的解決方案

    這篇文章主要介紹了在zuulFilter中注入bean失敗的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • springboot?yml配置文件值注入方式

    springboot?yml配置文件值注入方式

    這篇文章主要介紹了springboot?yml配置文件值注入方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java中接口和事件監(jiān)聽器的深入理解

    java中接口和事件監(jiān)聽器的深入理解

    這篇文章主要給大家介紹了關(guān)于java中接口和事件監(jiān)聽器的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-12-12
  • springmvc+spring+mybatis實現(xiàn)用戶登錄功能(上)

    springmvc+spring+mybatis實現(xiàn)用戶登錄功能(上)

    這篇文章主要為大家詳細介紹了springmvc+spring+mybatis實現(xiàn)用戶登錄功能,比較基礎的學習教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 通過實例深入學習Java的Struts框架中的OGNL表達式使用

    通過實例深入學習Java的Struts框架中的OGNL表達式使用

    這篇文章主要通過實例介紹了Java的Strus框架中的OGNL表達式使用,Struts框架是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-11-11

最新評論