log4j2 使用詳解

2021-06-28 20:30:42 字數 1986 閱讀 2451

1. log4j2的匯入

2. 測試用例

log4j 2.0的使用非常簡單,只要用logmanager的getlogger函式獲取乙個logger,就可以使用logger記錄日誌,**如下:

import org.apache.logging.log4j.logmanager;

import org.apache.logging.log4j.logger;

public class hellolog4j

}

import org.apache.logging.log4j.logmanager;

import org.apache.logging.log4j.logger;

public boolean doit()

}

執行程式,輸出結果為:

16:10:28.672 [main] error hellolog4j - hello, world!

注意到,輸出的log都是在error level上的,log4j定義了8個級別的log(除去off和all,可以說分為6個級別),優先順序從高到低依次為:off、fatal、error、warn、info、debug、trace、 all。如果將log level設定在某乙個級別上,那麼比此級別優先順序高的log都能列印出來。例如,如果設定優先順序為warn,那麼off、fatal、error、warn 4個級別的log能正常輸出,而info、debug、trace、 all級別的log則會被忽略。從我們實驗的結果可以看出,log4j預設的優先順序為error或者warn(實際上是error)。

3. 配置檔案

log4j是apache的乙個開源專案,在寫這篇部落格的時候已經發布了2.0的beta版本,首先需要注意的是,log4j 2.0與以往的1.x有乙個明顯的不同,其配置檔案只能採用.xml, .json或者 .jsn。在預設情況下,系統選擇configuration檔案的優先順序如下:(classpath為scr資料夾)

classpath下名為 log4j-test.json 或者log4j-test.jsn檔案

classpath下名為 log4j2-test.xml

classpath下名為 log4j.json 或者log4j.jsn檔案

classpath下名為 log4j2.xml

必須注意.xml 檔案的檔名為log4j2,這裡讓我糾結了乙個下午,系統一直找不到配置檔案,最後發現是檔名裡面少了乙個2。下面以log4j2.xml為例來介紹log4j的配置。

<?xml version="1.0" encoding="utf-8"?>

root標籤為log的預設輸出形式,如果乙個類的log沒有在loggers中明確指定其輸出lever與格式,那麼就會採用root中定義的格式。例如以下定義:

<?xml version="1.0" encoding="utf-8"?>

此時,hellolog4j則會在error級別上輸出log,而其他類則會在trace級別上輸出log。需要注意的是 additivity選項,如果設定為true(預設值)則hellolog4j的log會被列印兩次,第二次列印是由於hellolog4j同時也滿足root裡面定義的trace

4. 其他特徵

<?xml version="1.0" encoding="utf-8"?>  

擴充套件元件

輸出結果到system.out或是system.err。

自動追加日誌資訊到檔案中,直至檔案達到預定的大小,然後自動重新生成另外乙個檔案來記錄之後的日誌。

過濾標籤

1,thresholdfilter

用來過濾指定優先順序的事件。

2,timefilter

設定start和end,來指定接收日誌資訊的時間區間。

**:相關:

Log4j2使用案例

全乾貨記錄 link org.apache.logging.log4jgroupid log4j apiartifactid 2.13.3version dependency org.apache.logging.log4jgroupid log4j coreartifactid 2.13.3ver...

log4j2非同步Logger 詳解

1 非同步logger的意義 之前的日誌框架基本都實現qriio了asyncappender,被證明對效能的提公升作用非常明顯。在log4j2日誌框架中,增加了對logger的非同步實現。那麼程式設計客棧這一步的解耦,意義何在呢?如圖,按我目前的理解 非同步logger是讓業務邏輯把日誌資訊放入di...

log4j2使用筆記

rollingfile節點 file 基礎知識 log4j2日誌級別 從大到小依次是 off fatal error warn info debug trace all 由於使用的是slf4j界麵包,該界麵包中只提供了error warn info debug trace,5中日誌級別的輸出 con...