Lombok的@CustomLog流暢的公司多場景日志
開發(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)文章
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),需要的朋友可以參考下2014-04-04SpringBoot-application.yml多環(huán)境配置詳解
本文主要介紹了SpringBoot-application.yml多環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07springboot項目連接多種數(shù)據(jù)庫該如何操作詳析
在Spring Boot應用中連接多個數(shù)據(jù)庫或數(shù)據(jù)源可以使用多種方式,下面這篇文章主要給大家介紹了關(guān)于springboot項目連接多種數(shù)據(jù)庫該如何操作的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-08-08springmvc+spring+mybatis實現(xiàn)用戶登錄功能(上)
這篇文章主要為大家詳細介紹了springmvc+spring+mybatis實現(xiàn)用戶登錄功能,比較基礎的學習教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07通過實例深入學習Java的Struts框架中的OGNL表達式使用
這篇文章主要通過實例介紹了Java的Strus框架中的OGNL表達式使用,Struts框架是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下2015-11-11