Log4J的一些小技巧和使用中一些須要注意的問題。

2021-08-22 05:51:04 字數 1308 閱讀 3151

一、為多個專案指定使用哪個log4j檔案

情況一:多個小專案合成乙個大專案,多個小專案有自己不同的入口,這個時候如果使用同乙個log4j檔案,各個專案的輸

出會混亂在一起,如果拆分成多個小專案,看起來又比較散不太好管理。

情況二:乙個專案實施在linux上,編寫在windows上,log4j的輸出目錄/opt/***/web.log

這個時候開發者被迫必須在本機的workspace所在的目錄加入乙個opt/***/web.log的目錄和檔案

同時,大多數情況下linux上的服務是不須要輸出log到console,只要輸出到檔案

而windows大部份是只須要輸出到console,不須要輸出到檔案

本地除錯的時候log4j的級別多是debug ,而實際實施的時候多是之上的級別

造成須要不停的修改log4j的屬性檔案,cvs同步的時候不停的提示

也許你說可以整個專案完成再來寫log4j的屬性檔案,但有的時候這個效果並不好。

因為還有這種時候,專案完成(包括log),反覆測試的這段時間。

解決:解決辦法很簡單,建立乙個log4j的配製檔案的目錄,在這個目錄下為每個小專案建立乙個目錄,

每個目錄下放著自己的log4j配製,然後把這些目錄作為每個小工程的classpath的第乙個,ok上邊的問題就

解決了。這個時候可以寫乙個log4j放在src下,用來開發時候除錯用,而真正伺服器上使用的都在各自的資料夾下

二,為默寫包,某些類定義不同的log4j級別

是否想過這中需求呢,乙個專案除錯的時候,希望其中默寫包不打出log資訊。

比如struts的包,spring的包,還有你引用的別人已經開發好包,或者你自己寫的類,但是你不想看到這個

類的log資訊.但是你須要除錯當前的一些class,log級別必須設定在debug級別

這個時候可以在log4j的屬性檔案中加入如下內容:

log4j.logger.包名or類名=高的級別

例如:log4j.logger.org.springframework=error

三、注意事項

1void

execute()

5是否這麼寫過呢?這樣寫是有些問題的。當你把log級別調整到info或者更高的時候,log資訊是不輸出了

但是字串的拼接一樣進行了,使你的程式效率降低,實驗一下

1void

execute()

5public

string getstr()

8調整log4j屬性檔案級別到info 結果getstr()照樣執行了

解決辦法:

1void

execute()

7

log4j配置和使用

log4j的配置如下 配置日誌的等級,日誌有好多級別,本文等級為debug,輸出位址為console。log4j.rootlogger debug,console,a 配置是否在螢幕中顯示,預設為true,log4j.addivity.org.apache false 配置在控制台輸出 設定等級為d...

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...