淺談Log
Log記錄不論是在開發過程中進行測試,或是未來系統上線後偵錯,都是相當重要的一個工具,有助於我們快速找到問題原因,了解程式運行情況或變數變化情形。
Logback 與 SLF4J 比較
SLF4J只是一種日誌的介面,而Logback是一種日誌實現的框架,log4j、log4j2也是一種日誌實現的框架。Spring boot目前預設的日誌框架是Logback,因此不需要再額外新增依賴。
SLF4J強大的地方在於,良好的適應各種日誌實現框架,在轉換使用各種日誌框架時,無需修改程式碼,即可完成轉換。
Logback、Log4j、Log4j2 比較
從命名上來看,很明顯Log4j2是從Log4j衍生而來的,而根據資料來看,他們的效能關係是Log4j2 > Logback > Log4j,尤其在非同步的情況中,Log4j2 >> Logback。不過spring boot預設的日誌實現框架是logback,因此在沒有特別的需求下,Logback已經足夠應付使用了
SLF4J 實作
private static final Logger LOG = LoggerFactory.getLogger(MyClass.class);
LOG.info("info");
LOG.warn("warn");
LOG.debug("debug");
LOG.trace("trace");
LOG.error("error");
Logback、Log4j2 實作
事實上,目前還沒有很清楚彼此之間的差異,希望透過後續章節分別實作這兩種日誌框架,可以對此有個更深入的了解。
參考
有興趣的人可以參考他的說法
Spring Boot Logging Best Practices Guide