Posted on 2012-07-29 14:48
云云 阅读(4510)
评论(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一样可以找到输出目录