log4j2日誌遷移總結與問題

最近爲實現日誌的分類,壓縮,將log4j升級爲log4j2。雖然有很多文章對其中配置講的很詳細,但實踐中仍有不少細節值得補充,雖然看着比較零散,但希望對再次遇到這些問題的有所幫助。


路徑配置:

改相對路徑爲絕對路徑,解決日誌產生點不固定的問題。

<property name="log_home">${sys:PROJECT_HOME}</property>

<Property name="log_path">log</Property>

絕對路徑/${log_home}/${log_path}/info

相對路徑${log_path}/info

問題1:高可用是否能讓日誌在指定位置產生。

問題2:從相對路徑到絕對路徑的調整原因,猜測1:/,猜測2:sys路徑


jar包衝突

在調整log4j到log4j2的過程中,產生了一些jar包衝突

問題1:組件內置日誌包和log4j2存在衝突:解決方案,發現後排除。(待驗證)

問題2:誤引入log4j的包,解決方案,注意代碼相關問題

正確日誌jar包:

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

錯誤日誌jar包:

import org.apache. log4j.LogManager;

import org.apache. log4j.Logger;


nohup.out顯示問題:

修改&爲 >/dev/null 2>&1 &,但發現錯誤日誌無法正常顯示(推測爲jar包衝突問題),暫時改爲 >/dev/null  &


日誌壓縮問題:

日誌有兩種壓縮方式

定大小壓縮:<SizeBasedTriggeringPolicy size="20MB"/>

定期壓縮:<TimeBasedTriggeringPolicy modulate="true" interval="1"/>

注:定期壓縮根據設置的壓縮格式來壓縮,注意壓縮包末尾的時間單位

壓縮格式:filePattern="/${log_home}/${log_path}/info/info - %d{yyyy-MM-dd}.log.gz"

或者兩者皆有


gc日誌問題:

有時候程序運行中會產生gc日誌,

日誌內容包括正常運行的記錄,格式如下:

2019-07-11T11:14:46.462+0800: 85483.378: [GC (Allocation Failure) [PSYoungGen: 653311K->15167K(657408K)] 909738K->271594K(2022912K), 0.0302089 secs] [Times: user=0.15 sys=0.00, real=0.03 secs]

錯誤日誌:oom的記錄。

問題gc日誌產生方式,壓縮方式,自動刪除方式暫不清楚


滾動刪除

網上其實有很多滾動刪除的示例,但在實際操作中遇到了滾動刪除失敗的問題,推測可能爲權限問題,如果該問題解決,我會再講下其中問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章