一、為多個專案指定使用哪個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...