本身寫的一個簡單案例:http://www.javashuo.com/article/p-xxmrgmmm-kh.html 一下解釋,來源與百度百科,看了不少文章都是這麼寫的,不知道誰copy誰的,我這裏說明一下。 SLF4J,即簡單日誌門面(Simple Logging Facade for Java),不是具體的日誌解決方案,它只服務於各類各樣的日誌系統。按照官方的說法,SLF4J是一個用於日誌系統的簡單Facade,容許最終用戶在部署其應用時使用其所但願的日誌系統。數據庫
中文名:簡單日誌門面 英文名:Simple Logging Facade for Java 簡 稱:SLF4J 類 型:日誌系統
實際上,SLF4J所提供的核心API是一些接口以及一個LoggerFactory的工廠類。從某種程度上,SLF4J有點相似JDBC,不過比JDBC更簡單,在JDBC中,你須要指定驅動程序,而在使用SLF4J的時候,不須要在代碼中或配置文件中指定你打算使用那個具體的日誌系統。如同使用JDBC基本不用考慮具體數據庫同樣,SLF4J提供了統一的記錄日誌的接口,只要按照其提供的方法記錄便可,最終日誌的格式、記錄級別、輸出方式等經過具體日誌系統的配置來實現,所以能夠在應用中靈活切換日誌系統.net
###使用緣由debug
若是你開發的是類庫或者嵌入式組件,那麼就應該考慮採用SLF4J,由於不可能影響最終用戶選擇哪一種日誌系統。在另外一方面,若是是一個簡單或者獨立的應用,肯定只有一種日誌系統,那麼就沒有使用SLF4J的必要。假設你打算將你使用log4j的產品賣給要求使用JDK 1.4 Logging的用戶時,面對成千上萬的log4j調用的修改,相信這絕對不是一件輕鬆的事情。可是若是開始便使用SLF4J,那麼這種轉換將是很是輕鬆的事情。日誌
SLF4J不一樣於其餘日誌類庫,與其它有很大的不一樣。SLF4J(Simple logging Facade for Java)不是一個真正的日誌實現,而是一個抽象層( abstraction layer),它容許你在後臺使用任意一個日誌類庫。這使咱們不須要在意以後使用什麼日誌系統去實現日誌功能。code
Log4j中使用的方案實現日誌時,通常代碼是blog
if (logger.isDebugEnabled()) { logger.debug("Processing trade with id: " + id + " symbol: " + symbol); }
而在slf4j中能夠獲得在極簡潔的格式的結果接口
logger.debug("Processing trade with id: {} and symbol : {} ", id, symbol);
在SLF4J,咱們不須要字符串鏈接並且不會致使暫時不須要的字符串消耗。取而代之的,咱們在一個以佔位符{}和以參數傳遞實際值的模板格式下寫日誌信息。開發