標籤:
一、Log4j是什嗎?
Log4j是Apache的一個開原始碼項目,通過使用Log4j,我們可以控制日誌資訊輸出的目的地。最常見的就是輸出到控制台或者記錄檔。同時,它強大的一點是可以在C、C++等其他程式中使用,只要有相關的介面包即可。
二、如何在Java環境下配置Log4j?
網上的好多做法要麼照本宣科,解釋的太繁瑣,要麼太簡略,讓人不得要領,其實步驟非常簡單。
Log4j支援兩種設定檔格式:XML、Log4j.properties.
我習慣選擇後者。
一般只要將該檔案放在項目的根目錄下即可。
在項目中使用log,只需要匯入一個叫log4j-XXXX(版本號碼).jar的包即可。
具體匯入方法:選中項目,右鍵-屬性-build path-libraries-add external jars,然後選擇包即可。
下載此包,可以到此網址上下載http://logging.apache.org/log4j/2.x/download.html,也可以在本文附件中下載。
至此,可以說,環境已經配置好了,
三、怎麼使用log4j?
在使用的類檔案中匯入用紅線標出來的包。
然後通過一條指令,獲得該logger對象:
Private static Logger logger = Logger.getLogger(類名.class));
然後你就可以在需要log的地方,列印輸出就行了,比如:
Logger.info(XXXXXXX);
Logger.debug(XXXXXXX);
接下來的問題就是怎麼能使資訊輸出到不同的地方呢?
這就是前面的Log4j.properties的作用了。
Log4j有三個組件:Loggers—記錄器,Appenders---輸出源,Layouts---布局
通俗點講就是日誌是什麼類別的,日誌要輸出到哪裡,日誌是什麼樣的形式。
Log4j.rootLogger = [level], appenderName,appenderName,…….
Level 為記錄的優先順序:OFF, FATAL, ERROR, WARN,INFO,DEBUG,ALL或者自訂。
Log4j建議只使用四個層級,從高到低分別為:ERROR, WARN, INFO, DEBUG.
比如定義了INFO層級,只有高於或者等於這個層級的才進行處理,而DEBUG層級的資訊將不被列印出來。OFF,關閉所有的日誌輸出。
appenderName 是指定日誌輸出到那個地方。
Log4j提供的appender有以下幾種:
org.apache.log4j.ConsoleAppender ---控制台
org.apache.log4j.FileAppender---檔案
org.apache.log4j.DailyRollingFileAppender----每天產生一個記錄檔
還有一些其他的方式,常用的大概就是以上三種。
例如:
Log4j.appender.stdout= org.apache.log4j.ConsoleAppender
就是將資訊輸出到控制台。
這裡給出我的一個樣本設定檔:
容易分析:
我要將DEBUG層級以下的資訊列印出來,不過就屬他層級最低。
A1負責指定到控制台,D負責指定到F://logs/log.log這個檔案中。
後面的那個Append=true代表追加,如果是false的話,再次運行程式的調試資訊會將其覆蓋。
結果
Java log4j的環境搭建