log4j2效能優化

2021-10-07 11:49:50 字數 565 閱讀 4155

背景:最近在做log4j公升級到log4j2的專案,在測試公升級之後的效能時,被驚了一下,效能沒有提公升,反而下降了,趕緊研究了一下log4j2的相關配置,以下是研究結果。1.

2.不要使用location相關屬性,例如

c or $class, %f or %file, %l or %location, %l or %line, %m or %method

,大概降低

30到100倍。includelocation要設定為false(預設為false,可以直接不設定)。

4.在大併發的條件下,需使用純非同步記日誌或混合非同步記日誌,推薦增大

log4j2.asyncloggerringbuffersize

的值(預設為256*1024),設定時可以加在jvm啟動的指令碼裡。下面例子裡是兩倍預設值。這個值是被log4j2依賴的disruptor.jar中的引數,log4j2的高效能非同步記日誌全是借助於它。

-dlog4j2.asyncloggerringbuffersize = 524288
以上是一天的研究成果,還得接著扣,畢竟效能第一(狗頭保命)。

log4j2效能提公升點

1 log4j1寫日誌多執行緒情況是阻塞的,log4j2不會阻塞,生產者只負責生產,通過無鎖佇列ringbuffer的無阻塞記憶體佇列作為緩衝 即使用disruptor 多生產者多執行緒的競爭是通過cas實現,效能較高,至於最後落地,雖然兩者都會呼叫synchronized方法寫入日誌,log4j2...

log4j2 提公升系統效能

其中,log4j log4j2 logback commons logging都是日誌的具體實現包。其中,slf4j是乙個門面,乙個介面卡,所有的日誌 都可以用slf4j來寫,它會根據專案具體依賴的日誌實現包進行日誌操作。通過slf4j寫日誌的好處是,當更換日誌的實現方案時,無需修改日誌 只需修改p...

log4j2 使用詳解

1.log4j2的匯入 2.測試用例 log4j 2.0的使用非常簡單,只要用logmanager的getlogger函式獲取乙個logger,就可以使用logger記錄日誌,如下 import org.apache.logging.log4j.logmanager import org.apach...