[英]Log4j common custom interface
我正在使用 slf4j 和 log4j2,我想創建一個通用攔截器。 像下面這樣,如果將來出現任何 log4j 升級,我就不必更改每個 class。請查看下面的代碼,讓我知道您對性能和 memory 的想法。我們還有其他更好的方法可以做到這一點嗎?
Class LoggingHelper {
public static void logEvent(Class clazz, String message, Object ...args) {
Logger logger = LoggerFactory.getLogger(clazz);
logger.info(message,args);
}
}
保護用戶免受底層實現的更改正是SLF4J 或 Log4j2 API(參見API 分離)等 API 的目的。 盡管 API 中的語義主要版本提升可以破壞消費者代碼,但從未發生過此類更改:例如,最近的 SLF4J 2.x 版本在語義上是次要版本提升,只需要更新實現。
使用像你提議的那樣的 API 包裝器通常不是一個好主意,因為你必須重新實現 API 已經處理的很多細節。 在你的例子中:
LoggingHelper
生成的,軟件系統傾向於放棄它們的自定義日志記錄 API:例如,Jetty 在 10.x 版本中放棄了其自定義日志記錄 API。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.