Log4j和Slf4j的比較


  簡單日記門面(simple logging Facade for java)SLF4J是為各種loging APIs提供一個簡單統一的接口,從而使得最終用戶能夠在部署的時候配置自己希
望的loging APIs實現。准確的說,slf4j並不是一種具體的日志系統,而是一個用戶日志系統的facade,允許用戶在部署最終應用時方便的變更其日志系統。

在系統開發中,統一按照slf4j的API進行開發,在部署時,選擇不同的日志系統包,即可自動轉換到不同的日志系統上。比如:選擇JDK自帶的日志系統,

則只需要將slf4j-api-1.5.10.jar和slf4j-jdk14-1.5.10.jar放置到classpath中即可,如果中途無法忍受JDK自帶的日志系統了,想換成log4j的日志系統,

僅需要用slf4j-log4j12-1.5.10.jar替換slf4j-jdk14-1.5.10.jar即可(當然也需要log4j的jar及配置文件)

SLF4J獲得logger對象:

private static final Logger logger = LoggerFactory.getLogger(Test.class);

LOG4J獲得logger對象:

private static Logger logger = Logger.getLogger(Test.class);
總結:
  1. 大部分人在程序里面會去寫logger.error(exception),其實這個時候log4j回去把這個exception tostring。真正的寫法應該是logger(message.exception);而slf4j就不會使得程序員犯這個錯誤。
  2. log4j間接的在鼓勵程序員使用string相加的寫法,而slf4j就不會有這個問題。
  3. 你可以使用logger.error("{} is+serviceid",serviceid);
  4. 使用slf4j可以方便的使用其提供的各種集體的實現的jar。(類似commons-logger)
  5. 從commons--logger和log4j merge非常方便,slf4j也提供了一個swing的tools來幫助大家完成這個merge。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM