簡單日記門面(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);
總結:
- 大部分人在程序里面會去寫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。