log4j日志級別及使用規范


log4j定義了8個級別的log(出去OFF和ALL,可以說分為6個級別),分別為:

1、DEBUG 指出細粒度信息事件對調試應用程序是非常有幫助的,就是輸出debug的信息。一般自己單獨調試的時候用的比較多。舉個例子:假如從數據庫里面取出所有的用戶信息,放到一個List里面,如果想要查看每個用戶的具體情況,一般使用log.debug()進行跟蹤調試。只是為了加深對程序或者數據的理解,但是對線上運行沒有實際的幫助就可以用debug。

2、INFO 表明消息在粗粒度級別上突出強調應用程序的運行過程,就是輸出提示信息。程序啟動、統計性、總結性信息或者運行過程中的提示性信息,比如程序初始化的時候,需要輸出一下系統參數等,一般用info實現,還有剛才舉得用戶信息的例子,線上運行的時候只需要輸出List大小等信息即可,此時用info。info級別監控系統運行情況,可以幫助程序員有效的了解程序的流轉。(注意:索引資源組線上統一開啟info級別日志)

3、WARN 概念比較模糊,很難確定界限,所以一般很少使用,使用最多的還是DEBUG 、INFO 、ERROR。

4、ERROR  指出雖然發生錯誤事件,但仍然不影響系統的繼續運行。就是顯示錯誤信息。舉個例子,做除法運算的時候,要判斷分母是否為零,所以要捕獲異常,發生異常的時候log.error輸出錯誤信息,並不影響程序的運行。

5、FATAL   指出每個嚴重的錯誤事件將會導致應用程序的退出。fatal用的場合也比較少,一般在程序發生不可逆轉的錯誤或者朝着難以預計的方向運行用log.fatal(),注意,這個級別的日志還會導致程序的退出, 這個也算和error的一個區別,error只是輸出錯誤日志,並不影響程序運行。

6、ALL level: 是最低等級的,用於打開所有日志記錄。

7、OFF level: 是最高等級的,用於關閉所有日志記錄。

8、TRACE:designates finer-grained informational events than the DEBUG. Since: 1.2.12,很低的日志級別,一般不會用。

如果將log level設置在某一個級別上,那么比此級別優先級高的log都能打印出來,例如,如果設置優先級為WARN,那么OFF、FATAL、ERROR、WARN 4個級別的log能正常輸出,而INFO、DEBUG、TRACE、 ALL級別的log則會被忽略。Log4j建議只使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG。

從實驗的結果可以看出,log4j默認的優先級為ERROR或者WARN(實際上是ERROR)。

日志記錄器(Logger)的行為是分等級的。如下所示:

分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL或者您定義的級別。Log4j建議只使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG。

通過在這里定義的級別,您可以控制到應用程序中相應級別的日志信息的開關。比如在這里定義了INFO級別,則應用程序中所有DEBUG級別的日志信息將不被打印出來。

程序會打印高於或等於所設置級別的日志,設置的日志等級越高,打印出來的日志就越少。如果設置級別為INFO,則優先級高於等於INFO級別(如:INFO、WARN、ERROR)的日志信息將可以被輸出,小於該級別的如DEBUG將不會被輸出。

 

注意事項:

1、   ERROR信息必須同時打印日志和堆棧信息。

2、   線上日志統一設置為INFO級別。

3、   線上日志按照天或者小時拆分。

4、   日志存放目錄采用相對路徑。

5、   日志打印輸出文件的大小。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM