一、為多個項目指定使用哪個log4j文件 情況一:多個小項目合成一個大項目,多個小項目有自己不同的入口,這個時候如果使用同一個log4j文件,各個項目的輸 出會混亂在一起,如果拆分成多個小項目,看起來又比較散不太好管理。 情況二:一個項目實施在linux上,編寫在windows上,log4j的輸出目錄/opt/xxx/web.log 這個時候開發者被迫必須在本機的workspace所在的目錄加入一個opt/xxx/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
三、注意事項 if (logger.isDebugEnabled()) { 4 logger.debug(getStr()); 5 }
|