log4j2.xml配置
6 <?xml version="1.0" encoding="UTF-8"?> 7 <Configuration > 8 <Appenders> 9 <Console name="STDOUT" target="SYSTEM_OUT"> 10 <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> 11 </Console> 12 </Appenders> 13 <Loggers> 14 <logger name="com.opensymphony.xwork2" level="debug"/> 15 <logger name="org.apache.struts2" level="debug"/> 16 <Root level="info"> 17 <AppenderRef ref="STDOUT"/> 18 </Root 19 </Loggers> 20 </Configuration>
LogUtil類
1 package cn.sxt.common.util; 2 3 import org.apache.logging.log4j.LogManager; 4 import org.apache.logging.log4j.Logger; 5 6 public class LoggerUtil { 7 public static final Logger LOGGER = LogManager.getLogger(); 8 }
log4j.properties 的文件配置 和 配置內容解釋 參考:http://www.cnblogs.com/bignew/p/6602379.html
日志級別 :
× Debug
× Info
× Warn
× Error
× Fatal
一個等級比一個高,但是在具體開發中,關於應該如何選擇適應的等級,卻沒有找到好的文章進行說明。記錄一下自己的一些看法,以便日后使用吧。
=== Debug ===
這個級別最低的東東,一般的來說,在系統實際運行過程中,一般都是不輸出的。
因此這個級別的信息,可以隨意的使用,任何覺得有利於在調試時更詳細的了解系統運行狀態的東東,比如變量的值等等,都輸出來看看也無妨。
當然,在每一個 Debug 調用之前,一定要加上 If 判斷。
=== Info ===
這個應該用來反饋系統的當前狀態給最終用戶的,所以,在這里輸出的信息,應該對最終用戶具有實際意義,也就是最終用戶要能夠看得明白是什么意思才行。
從某種角度上說,Info 輸出的信息可以看作是軟件產品的一部分(就像那些交互界面上的文字一樣),所以需要謹慎對待,不可隨便。
=== Warn、Error、Fatal ===
警告、錯誤、嚴重錯誤,這三者應該都在系統運行時檢測到了一個不正常的狀態,他們之間的區別,要區分還真不是那么簡單的事情。我大致是這樣區分的:
所謂警告,應該是這個時候進行一些修復性的工作,應該還可以把系統恢復到正常狀態中來,系統應該可以繼續運行下去。
所謂錯誤,就是說可以進行一些修復性的工作,但無法確定系統會正常的工作下去,系統在以后的某個階段,很可能會因為當前的這個問題,導致一個無法修復的錯誤(例如宕機),但也可能一直工作到停止也不出現嚴重問題。
所謂Fatal,那就是相當嚴重的了,可以肯定這種錯誤已經無法修復,並且如果系統繼續運行下去的話,可以肯定必然會越來越亂。這時候采取的最好的措施不是試圖將系統狀態恢復到正常,而是盡可能地保留系統有效數據並停止運行。
也就是說,選擇 Warn、Error、Fatal 中的具體哪一個,是根據當前的這個問題對以后可能產生的影響而定的,如果對以后基本沒什么影響,則警告之,如果肯定是以后要出嚴重問題的了,則Fatal之,拿不准會怎么樣,則 Error 之。
<參考:http://blog.chinaunix.net/uid-26434689-id-3017353.html>