当前位置:  开发笔记 > 编程语言 > 正文

如何为不同的ant任务提供自定义log4j.xml?

如何解决《如何为不同的ant任务提供自定义log4j.xml?》经验,为你挑选了0个好方法。

我有一个构建文件,作为构建过程的一部分依赖于几个taskdef.这些taskdef项(例如,webdoclet和jasper2)使用log4j作为记录器.理想情况下,我希望能够为每个提供不同的log4j配置文件,但最低限度,我希望能够指定使用哪个log4j配置文件.

我以前做的工作是在类路径的前面放置包含我希望taskdef使用的log4j.xml的目录.例如:


  
      
      
      
             ....
      
      
      ....
  

  

事实上,我已经验证了"Build"目录位于类路径的前面,并且该目录中存在log4j.xml.但是,当我在调试时使用log4j以详细模式运行ant时,我看到log4j正在选择当前工作目录中的log4j.xml ,这不是我想要的.Log4j似乎没有使用类路径来解析默认的log4j.xml.

我正在使用log4j 1.2.8(嵌入在一个更大的框架中,所以我无法升级它),其中一些taskdef似乎依赖于commons-logging 1.0.3.构建过程使用Sun Java 5.

如果我set ANT_OPTS=-Dlog4j.configuration=Build/log4j.xml在运行ant之前,taskdefs正确加载了所需的log4j.xml.

将"Bu​​ild"目录放在类路径的前面,用于工作的taskdef.我不知道改变了什么.如何恢复我可以控制的行为 - 在build.xml中 - 哪个log4j配置文件用于给定任务?除了设置ANT_OPTS以外,还有其他方法可以将应用程序的log4j.xml移出当前工作目录以使log4j找到正确的log4j.xml文件吗?

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有