SLF4J 與 log4j 的比較 导航菜单改善这篇條目

Java用Java編程的自由軟體


Logging 框架外觀模式Java Logging APIlog4jlogbackMIT 授權Apache Commons Logging






JAVA簡易日誌門面(Simple Logging Facade for Java,縮寫SLF4J),是一套包裝Logging 框架的介面程式,以外觀模式實现。可以在軟體部署的時候決定要使用的 Logging 框架,目前主要支援的有Java Logging API、log4j及logback等框架。以MIT 授權方式發佈。


SLF4J 的作者就是 log4j 的作者 Ceki Gülcü,他宣稱 SLF4J 比 log4j 更有效率,而且比 Apache Commons Logging (JCL) 簡單、穩定。



與 log4j 的比較


  • log4j 提供 TRACE, DEBUG, INFO, WARN, ERROR 及 FATAL 六種紀錄等級,但是 SLF4J 認為 ERROR 與 FATAL 並沒有實質上的差別,所以拿掉了 FATAL 等級,只剩下其他五種。

  • 大部分人在程序里面会去写logger.error(exception),其实这个时候log4j会去把这个exception tostring。真正的写法应该是logger(message.exception);而slf4j就不会使得程序员犯这个错误。

  • log4j间接的在鼓励程序员使用string相加的写法,而slf4j就不会有这个问题 ,你可以使用logger.error(" is+serviceid",serviceid);

  • 使用slf4j可以方便的使用其提供的各种集体的实现的jar。(类似commons-logger)

  • 从commons--logger和log4j merge非常方便,slf4j也提供了一个swing的tools来帮助大家完成这个merge。

  • 提供字串內容替換的功能,會比較有效率,說明如下:

// 传统的字符串产生方式,如果没有要记录Debug等级的信息,就会浪费时间在产生不必要的信息上
logger.debug("There are now " + count + " user accounts: " + userAccountList);

// 为了避免上述问题,我们可以先检查是不是开启了Debug信息记录功能,只是程序的编码会比较复杂
if (logger.isDebugEnabled())
logger.debug("There are now " + count + " user accounts: " + userAccountList);


// 如果Debug等级没有开启,则不会产生不必要的字符串,同时也能保持程序编码的简洁
logger.debug("There are now user accounts: ", count, userAccountList);

  • SLF4J 只支持 MDC,不支持 NDC。

Popular posts from this blog

瀋陽號驅逐艦 目录 接收與服役 配置反潛直升機 武進三型性能升級 歷史 除役 參考資料 外部連結 导航菜单Taiwan Air Power海疆老兵-陽字號驅逐艦沿革World Navies Today: Taiwan (Republic of China)DD-839 USS POWER

波兰旗帜列表 目录 国旗 军旗 其他制服部门旗帜 特别国家机构船只 参考文献 外部链接 导航菜单Polskie flagi, chorągwie, bandery... [波兰旗帜、条幅、船旗等]原始内容Ustawa z dnia 31 stycznia 1980 r. o godle, barwach i hymnie Rzeczypospolitej Polskiej oraz o pieczęciach państwowychZarządzenie Ministra Obrony Narodowej z dnia 14 grudnia 2005 r. zmieniające zarządzenie w sprawie szczegółowych zasad używania znaków Sił Zbrojnych Rzeczypospolitej Polskiej oraz ustalenia innych znaków używanych w Siłach Zbrojnych Rzeczypospolitej PolskiejZarządzenie Ministra Obrony Narodowej z dnia 29 stycznia 1996 r. w sprawie szczegółowych zasad używania znaków Sił Zbrojnych Rzeczypospolitej Polskiej oraz ustalenia innych znaków używanych w Siłach Zbrojnych Rzeczypospolitej PolskiejUstawa z dnia 19 lutego 1993 r. o znakach Sił Zbrojnych Rzeczypospolitej PolskiejHistoria Marynarki Wojennej RP [波兰海军史]Rozporządzenie Ministra Spraw Wewnętrznych i Administracji z dnia 12 kwietnia 2002 r. w sprawie wzoru flagi oraz oznakowania jednostek pływających i statków powietrznych Straży GranicznejRozporządzenie Ministra Spraw Wewnętrznych i Administracji z dnia 18 kwietnia 2005 r. w sprawie wzoru flagi oraz oznakowania jednostek pływających i statków powietrznych PolicjiRozporządzenie Ministra Infrastruktury z dnia 21 października 2005 r. w sprawie wzorów flag dla statków morskich na oznaczenie pełnionej specjalnej służby państwowej oraz okoliczności i warunków ich podnoszenia波兰旗帜波兰

Indenting and Dedenting ASP code with Python