我有一个默认的log4j
属性文件,我想要附加一个特定于应用程序的配置。该文件包含在.zip文件中(包含其他文件)。我使用Ant解压缩zip的内容(包括log4j属性)。我想在解压缩时附加行。这可能吗?
<unzip dest="some.dest">
<fileset refid="some.fileset" />
<!-- Append a line to 'log4j.properties` file -->
</unzip>
也许解决方案只是在我解压后回音。
答案 0 :(得分:1)
您可以将Ant“echo”任务与“append”标志一起使用:
<echo file="log4j.properties" append="true">${line.separator}</echo>
此处的回声任务文档供进一步参考:
答案 1 :(得分:0)
无需解压缩整个zip文件,请使用
如果log4j.properties位于zip的根目录:
<project>
<!-- unzip log4j.properties only -->
<unzip src="foo.zip" dest=".">
<patternset>
<include name="log4j.properties" />
</patternset>
</unzip>
<!-- put new key in or overwrite if already existing -->
<propertyfile file="log4j.properties">
<entry key="log4j.logger.com.foobar.xyz" value="ERROR" />
</propertyfile>
<!-- update zip with modified log4j.properties -->
<zip destfile="foo.zip" update="true">
<fileset dir="." includes="log4j.properties" />
</zip>
</project>
否则如果log4j.properties位于zip的任何子文件夹中:
<project>
<!-- unzip log4j.properties only -->
<unzip src="foo.zip" dest=".">
<patternset>
<include name="**/log4j.properties" />
</patternset>
</unzip>
<fileset dir="." includes="**/log4j.properties" id="foo"/>
<!-- put new key in or overwrite if already existing -->
<propertyfile file="${toString:foo}">
<entry key="log4j.logger.com.foobar.xyz" value="ERROR" />
</propertyfile>
<!-- update zip with modified log4j.properties -->
<zip destfile="foo.zip" update="true">
<fileset dir="." includes="${toString:foo}" />
</zip>
</project>