最近在公司的一個項目裏看到人家都在用self4j,開始不知道是什麼。後來讓我本身寫一個工具須要寫日誌,就想起了log4j可是也不是很熟悉。就在網上找各類日誌相關的資源,看到了諸如java.util.logging包中的logger ,log4j,slf4j,logback,common-logging 等好多日誌相關的東西,搞得頭暈腦脹的。從今天開始先研究。 java
sef4j的使用其實我也不知道那就從頭開始嘍。 api
slf4j的下載地址http://www.slf4j.org 函數
按照官方的說法,slf4j是一個用於日誌系統的簡單Facade,容許最終用戶在部署其應用時使用其所但願的日誌系統。而在使用slf4j的時候,不須要在代碼中或配置文件中指定你打算使用那個具體的日誌系統,slf4j提供了統一的記錄日誌的接口,只要按照其提供的方法記錄便可,最終日誌的格式、記錄級別、輸出方式等經過具體日誌系統的配置來實現,所以能夠在應用中靈活切換日誌系統。 工具
使用方式
this
在系統開發中,統一按照slf4j的API進行開發,在部署時,選擇不一樣的日誌系統包,便可自動轉換到不一樣的日誌系統上。好比:選擇JDK自帶的日誌系統,則只須要將slf4j-api-1.6.1.jar和slf4j-jdk14-1.6.1.jar放置到classpath中便可,若是中途沒法忍受JDK自帶的日誌系統了,想換成log4j的日誌系統,僅須要用slf4j-log4j12-1.6.1.jar替換slf4j- jdk14-1.6.1.jar便可(須要log4j的jar及配置文件log4j.properties文件),也可使用slg4j提供的 simple log,slf4j-simple-1.6.1.jar替換slf4j-jdk14-1.6.1.jar。 spa
package com.test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Slf4jTest { // 統一按照slf4j的API進行開 Logger logger = LoggerFactory.getLogger(Slf4jTest.class); public void testLog(){ logger.info("this is a test log"); } public static void main(String[] args) { Slf4jTest slf = new Slf4jTest(); slf.testLog(); } }
2010-2-23 11:57:28 com.test.Slf4jTest testLog 信息: this is a test log
[main] INFO com.test.Slf4jTest - this is a test log
public static void main(String[] args) { System.setProperty("log4j.configuration", "log4j.properties"); Slf4jTest slf = new Slf4jTest(); slf.testLog(); }
logger.info("Today is {}, Temperature set to {}. Old temperature was {}.", objs);