Log4j使用中遇到的問題及解決

2021-08-30 08:03:04 字數 2510 閱讀 1298

具體基本知識介紹:見

有非常詳細介紹

實際中碰到的問題:

1. 如何讓不同的類或包的日誌輸入不同的目的地(檔案、 db等)

比如:按照業務不同輸入不同的日誌檔案,寬頻業務、預付費業務輸入不同的日誌檔案

解決:log4j.logger.com.ht.ibms.orderadmin.service.tache.adsl =

debug

,file_adsl

log4j.logger.

***.yyy.zzz

=info

, file_uorss

這裡把包 com.ht.ibms.orderadmin.service.tache.adsl 下的類的日誌寫入 file_adsl 檔案 級別為 debug;

2.如何讓不同級別的日誌級別輸入不同的目的地(檔案、 db等)

讓 err 、 info 、 debug 輸入不同的日誌檔案;這樣方便使用查詢

解決:log4j.logger.com.ht.ibms.orderadmin.service.tache.adsl =

debug

,file_adsl

log4j.logger.com.ht.ibms.orderadmin.service.tache.adsl =

info

,file_adsl_2

也可以配置 這樣

log4j.logger.com.ht.ibms.orderadmin.service.tache.adsl =

debug

,file_adsl

log4j.logger.com.ht.ibms.orderadmin.service.tache.adsl =

debug,file_adsl_2

info

3.日誌配置檔案實時載入

解決見下文

4.日誌配置 file的相對路徑配置

日誌 file 方式的相對路徑怎麼配置;相對路徑能是軟體真正的跨平台跨路徑使用

解決見下文

分析:其實, log4j 在載入的時候會在 class 路徑裡找 log4j.properties 檔案,如果找到了就會賦給 propertyconfigurator 配置

propertyconfigurator.configure(props);// 裝入 log4j 配置資訊

propertyconfigurator.configure(***filepath);// 裝入 log4j 配置資訊

在實時載入的時候就要重新配置載入下 ~

法一、

二、可以使用伺服器環境變數

三、通過 servlet 初始化 init() 方法中載入 file 屬性實現相對路徑

具 體實現 : 做乙個 servlet, 在系統載入的時候 , 就把 properties 的檔案讀到乙個 properties 檔案中 . 那個 file 的屬性值 ( 我使用的 是相對目錄 ) 改掉 ( 前面加上系統的根目錄 ), 讓後把這個 properties 物件設定到 propertyconfig 中去 , 這樣就初始化了 log 的設定 . 在後面的使用中就用不著再配置了

一般在我們開發專案過程中 ,log4j 日誌輸出路徑固定到某個資料夾 , 這樣如果我換乙個環境 , 日誌路徑又需要重新修改 , 比較不方便 , 目前我採用了動態改變日誌路徑方法來實現相對路徑儲存日誌檔案

(1). 在專案啟動時 , 裝入初始化類 :

實 際上 log4j 的配置檔案 log4j.properties 如為預設名,可放置在 jvm 能讀到的 classpath 裡的任意地方,一般是放在 web- inf/classes 目錄下。當 log4j 的配置檔案不再是預設名,則需要另外載入並給出引數,如上 「ropertyconfigurator.configure(props);// 裝入 log4j 配置資訊 」

(2).web.xml 中的配置

log4j-init

log4jinit

log4j

web-inf/classes/log4j.properties

1

+_

)(**

log4j公升級log4j2遇到的問題及解決方式

目錄 org.slf4j slf4j api www.cppcns.comdependency org.slf4j jcl over slf4j org.apache.logging.log4j log4j core 2.8.2 org.apache.logging.log4j log4j slf4...

java中Log4j的使用

當我們的 存在有疑問的地方且不想去處理時,我們就需要把程式的日誌資訊輸出,這時我們會用到乙個 下一步是需要乙個屬性檔案,其中配置日誌的記錄位置,記錄格式等內容,我所用到的配置檔案如下,從中可以看出,我把日誌檔案輸出到控制台上 log4j.rootlogger debug,stdout pattern...

SpringBoot中Log4j的使用

org.springframework.bootgroupid spring boot starter webartifactid 2.1.3.releaseversion org.springframework.bootgroupid spring boot starter loggingarti...