和大多數配置文件同樣,log4j配置文件也有key-value形式和xml形式。這裏主要記錄一下key-value的形式html
咱們經過配置,能夠建立出Log4j的運行環境。Log4j由三個重要的組件構成:日誌信息的優先級,日誌信息的輸出目的地,日誌信息的輸出格式。數據庫
# 配置根log,第一個參數爲你想要輸出的日誌的等級,後面的是自定義的輸出源(appender)
log4j.rootLogger = debug,console,I,E
### 這裏定義第一個輸出源的相關信息
#輸出源console輸出到控制檯
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
#日誌格式輸出方式,選着這種方式須要自定義格式
log4j.appender.console.layout = org.apache.log4j.PatternLayout
#自定義格式
log4j.appender.console.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 輸出INFO級別的日誌信息到G://PetLoveWorkSpace//ZRJCashVip//logs/info.log
# I 是第二個輸出源
log4j.appender.I = org.apache.log4j.DailyRollingFileAppender
log4j.appender.I.File = G://PetLoveWorkSpace//ZRJCashVip//logs/info.log
log4j.appender.I.Append = true
# 這裏能夠配置本輸出源打印的級別
log4j.appender.I.Threshold = INFO
log4j.appender.I.layout = org.apache.log4j.PatternLayout
log4j.appender.I.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### print error to = E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =G://PetLoveWorkSpace//ZRJCashVip//logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
這裏配置,全部日誌將會在控制檯輸出。另外,INFO級別的日誌還會打印到info.log文件。ERROR級別的日誌打印到error.logapache
一、log4j.rootLogger = debug,console,I,Eapp
這裏:log4j.rootLogger=日誌級別,appender1, appender2, ….佈局
二、log4j.appender.I = org.apache.log4j.DailyRollingFileAppenderspa
這裏:log4j.appender.appender1=org.apache.log4j.日誌輸出的地方線程
三、log4j.appender.I.File = G://PetLoveWorkSpace//ZRJCashVip//logs/info.logdebug
這裏: log4j.appender.appender1.File = 日誌文件保存的地方日誌
四、log4j.appender.I.Threshold = INFO code
這裏:根據日誌別來打印,appender I 的級別是info,那麼全部info級別的日誌都將打印到appender I 指定的地方(通常是文件中嘛),好比,我上面配置文件中指定appender I 打印到info.log裏。
這一條頗有用,用這樣的方法咱們能夠將error級別的之日信息單獨打印到一個文件裏,定位問題的時候就省去了再一堆日誌文件裏慢慢找錯誤信息的麻煩了。
五、log4j.appender.I.layout = org.apache.log4j.PatternLayout
這裏:log4j.appender.appender1.layout=org.apache.log4j.日誌佈局格式
所謂的日誌佈局格式,就是指打印出來的日誌適合什麼樣子的。
這裏的例子使用了最後一個,這種靈活指定的佈局格式咱們須要加上第六條,顯示指定打印的具體格式。其餘三條,能夠試試就知道是什麼樣的了。
六、log4j.appender.I.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
這裏:log4j.appender.appender1.layout.ConversionPattern=日誌輸出格式。
日誌輸出格式是本身指定的,具體這些符號表明什麼意思以下:
七、log4j.appender.I.Append = true
意思是在日誌文件後追加。
1.獲得記錄器
使用Log4j,第一步就是獲取日誌記錄器,這個記錄器將負責控制日誌信息。其語法爲:
public static Logger getLogger( String name)
經過指定的名字得到記錄器,若是必要的話,則爲這個名字建立一個新的記錄器。Name通常取本類的名字,好比:
static Logger logger = Logger.getLogger ( TestLog.class.getName () )
2.讀取配置文件
當得到了日誌記錄器以後,第二步將配置Log4j環境.這裏根據應用來配置加載log配置文件。
三、插入日誌信息
就是在相應的業務邏輯處調用日誌記錄器,使用不一樣優先級別的日誌記錄語句插入到想記錄日誌的地方。
private static Logger logger = Logger.getLogger(TestLog.class);
logger.debug ( Object message ) ;
logger.info ( Object message ) ;
logger.warn ( Object message ) ;
logger.error ( Object message ) ;
具體使用方式比較簡單,可是作好日誌的記錄方式,和打印內容仍是很難的,好的日誌記錄,是對於排查系統的錯誤與異常頗有幫助的。
要是打印的日誌在系統出問題時幫不上任何忙,要它何用。
關於如何作好日誌記錄,我還任重道遠,能夠參考:http://www.cnblogs.com/rollenholt/p/5392338.html