![](/img/trans.png)
[英]Java getter/setter generation with Lombok for code with annotations
[英]Using Annotations / Code Generation to in Java Logging System
我正在嘗試增強Java日志記錄的功能,以使其效率更高。 日志記錄的典型示例如下所示:
logger.warn("This is a warning about " + a.toString() + " " + b.toString()
通過添加if檢查,可以使效率提高一點:
if (logger.isWarnEnabled()) {...}
“ if”檢查將保存參數構建和字符串連接。 當然,添加這些“ if”語句會使代碼有點腫和混亂。 我想設計一些東西,可以在使用時將所有logger.info / logger.warn等調用替換為包含“ if”檢查的版本。
關於這樣做的一些好的方法有什么建議嗎? 我想避免在源文本本身中直接查找/替換的內容,因為這容易出錯。 也許利用注釋和字節碼操作的東西? 這些不是我廣泛研究過的東西,因此任何幫助或建議都將不勝感激。
首先,我不知道您要做什么簡單的方法。
但是,我也建議您不要嘗試使用注釋處理或字節碼重寫來執行此操作。 兩者都很復雜,並且都意味着您執行的代碼與您編寫的代碼不同。 這兩個都會使下一個不得不維護您的代碼的人的工作變得繁瑣。
我還建議您不要嘗試使用普通搜索/替換來應用此優化:
正如您指出的那樣,您可能會犯一個錯誤。
IMO,您不應該全部替換它們。 (繼續閱讀...)
現實情況是,如果日志語句可能頻繁執行,則在日志語句上添加保護僅是值得的優化。 因此, 考慮在何處應用此優化是一個好主意。 同時,您應該考慮log語句是否值得。 (如果您的代碼中充滿了經常執行的日志語句,那么如果將級別設置為DEBUG,則很可能會生成過多的日志記錄。您可能希望避免這種情況。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.