Posted on 2012-07-29 14:48
云云 閱讀(4520)
評論(0) 編輯 收藏
通常在項目中我們都會把log4j的配置放到classpath里,
log4j的輸出路徑也就直接寫在log4j.xml或log4j.properties中了,
原本就這樣了不用麻煩什么了,可是在我們公司什么都要配置分離。
所以 log4j的輸出目錄也就不再開發人員指定了,
那么如何做到分離呢。
有的是直接把log4j.xml或properties文件分離,在項目啟動時加載進來,
那么這樣一來 整個log4j的配置文件都不由開發人員控制,
可是通常log4j的配置由運維人員配置的東東也就一個輸出目錄了,
而log4j的其它配置還是由開發人員控制,
這時可以用${},來指定
<param name="file" value="${log4j.home}/test.log" />
log4j.home由容器啟動時指定,jvm中加上 -Dlog4j.home=D:/log
這樣在Log4j.xml中的${log4j.home}就知道了實際的輸出目錄了,
同樣也可以把這個log4j.home放到分離的properties中,這時候可以
在容器啟動時在監聽器來解析properties,獲取到log4j.home變量后
把值設置到system.env中
System.setProperties("log4j.home");
這樣一來 ,log4j一樣可以找到輸出目錄