1. 程式人生 > >log4j 日誌輸出級別

log4j 日誌輸出級別

一共分為五個級別:DEBUG、INFO、WARN、ERROR和FATAL。這五個級別是有順序的,DEBUG < INFO < WARN < ERROR < FATAL,明白這一點很重要,這裡Log4j有一個規則:假設設定了級別為P,如果發生了一個級別Q比P高,則可以啟動,否則遮蔽掉。
DEBUG: 這個級別最低的東東,一般的來說,在系統實際執行過程中,一般都是不輸出的。因此這個級別的資訊,可以隨意的使用,任何覺得有利於在除錯時更詳細的瞭解系統執行狀態的東東,比如變數的值等等,都輸出來看看也無妨。
INFO:這個應該用來反饋系統的當前狀態給終端使用者的,所以,在這裡輸出的資訊,應該對終端使用者具有實際意義,也就是終端使用者要能夠看得明白是什麼意思才行。從某種角度上說,Info 輸出的資訊可以看作是軟體產品的一部分(就像那些互動介面上的文字一樣),所以需要謹慎對待,不可隨便。
WARN、ERROR和FATAL:警告、錯誤、嚴重錯誤,這三者應該都在系統執行時檢測到了一個不正常的狀態,他們之間的區別,要區分還真不是那麼簡單的事情。我大致是這樣區分的:
所謂警告,應該是這個時候進行一些修復性的工作,應該還可以把系統恢復到正常狀態中來,系統應該可以繼續執行下去。
所謂錯誤,就是說可以進行一些修復性的工作,但無法確定系統會正常的工作下去,系統在以後的某個階段,很可能會因為當前的這個問題,導致一個無法修復的錯誤(例如宕機),但也可能一直工作到停止也不出現嚴重問題。
所謂Fatal,那就是相當嚴重的了,可以肯定這種錯誤已經無法修復,並且如果系統繼續執行下去的話,可以肯定必然會越來越亂。這時候採取的最好的措施不是試圖將系統狀態恢復到正常,而是儘可能地保留系統有效資料並停止執行。
也就是說,選擇 Warn、Error、Fatal 中的具體哪一個,是根據當前的這個問題對以後可能產生的影響而定的,如果對以後基本沒什麼影響,則警告之,如果肯定是以後要出嚴重問題的了,則Fatal之,拿不準會怎麼樣,則 Error 之。