mike、mikeなるままに…

プログラムに関してぬるま湯のような記事を書きます

Groovyでantログの出力先を変更する

こんにちわ、みけです。

groovyでantのタスクでいろいろと大量のタスクを実行させている時に、

標準出力に出てくるログがちょっとうざったい時があります。

その場合に、ログの出力先のstreamを変更することができるようです。

1
2
3
4
5
6
7
8
9
10
11
// 出力先のstream
def x = new ByteArrayOutputStream()
// antの出力先を変更 
ant = new AntBuilder()
ant.project.buildListeners.each{
    it.outputPrintStream = new PrintStream(x)
}
// 大量のタスクを実行
(1..100).each {
    ant.echo "this is $it time log."
}

このスクリプトを実行すると次のような標準出力になります。

1
1..100

実際にはこのstreamを外部のファイルにしておくと後で実行結果だけを参照するなどできます。