Log4J的一些小技巧和使用中一些須要注意的問題。
一、為多個(gè)項(xiàng)目指定使用哪個(gè)log4j文件
情況一:多個(gè)小項(xiàng)目合成一個(gè)大項(xiàng)目,多個(gè)小項(xiàng)目有自己不同的入口,這個(gè)時(shí)候如果使用同一個(gè)log4j文件,各個(gè)項(xiàng)目的輸
出會(huì)混亂在一起,如果拆分成多個(gè)小項(xiàng)目,看起來又比較散不太好管理。
情況二:一個(gè)項(xiàng)目實(shí)施在linux上,編寫在windows上,log4j的輸出目錄/opt/xxx/web.log
這個(gè)時(shí)候開發(fā)者被迫必須在本機(jī)的workspace所在的目錄加入一個(gè)opt/xxx/web.log的目錄和文件
同時(shí),大多數(shù)情況下linux上的服務(wù)是不須要輸出log到Console,只要輸出到文件
而windows大部份是只須要輸出到console,不須要輸出到文件
本地調(diào)試的時(shí)候log4j的級(jí)別多是debug ,而實(shí)際實(shí)施的時(shí)候多是之上的級(jí)別
造成須要不停的修改log4j的屬性文件,cvs同步的時(shí)候不停的提示
也許你說可以整個(gè)項(xiàng)目完成再來寫log4j的屬性文件,但有的時(shí)候這個(gè)效果并不好。
因?yàn)檫€有這種時(shí)候,項(xiàng)目完成(包括log),反復(fù)測(cè)試的這段時(shí)間。
解決:解決辦法很簡(jiǎn)單,建立一個(gè)log4j的配制文件的目錄,在這個(gè)目錄下為每個(gè)小項(xiàng)目建立一個(gè)目錄,
每個(gè)目錄下放著自己的log4j配制,然後把這些目錄作為每個(gè)小工程的classpath的第一個(gè),ok上邊的問題就
解決了。這個(gè)時(shí)候可以寫一個(gè)log4j放在src下,用來開發(fā)時(shí)候調(diào)試用,而真正服務(wù)器上使用的都在各自的文件夾下
二,為默寫包,某些類定義不同的log4j級(jí)別
是否想過這中需求呢,一個(gè)項(xiàng)目調(diào)試的時(shí)候,希望其中默寫包不打出log信息。
比如struts的包,spring的包,還有你引用的別人已經(jīng)開發(fā)好包,或者你自己寫的類,但是你不想看到這個(gè)
類的log信息.但是你須要調(diào)試當(dāng)前的一些class,log級(jí)別必須設(shè)置在debug級(jí)別
這個(gè)時(shí)候可以在log4j的屬性文件中加入如下內(nèi)容:
log4j.logger.包名or類名=高的級(jí)別
例如:
log4j.logger.org.springframework=error
三、注意事項(xiàng)



2


3

4

5

是否這么寫過呢?這樣寫是有些問題的。當(dāng)你把log級(jí)別調(diào)整到info或者更高的時(shí)候,log信息是不輸出了
但是字符串的拼接一樣進(jìn)行了,使你的程序效率降低,實(shí)驗(yàn)一下



2


3

4

5



6

7

8

調(diào)整log4j屬性文件級(jí)別到info 結(jié)果getStr()照樣執(zhí)行了
解決辦法:



2


3



4

5

6

7

posted on 2006-11-29 17:33 dreamstone 閱讀(2891) 評(píng)論(1) 編輯 收藏 所屬分類: 利器 、片段