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