Record

説明

レコーダーは現在のビルドプロセスの出力をファイルに記録するリスナーです。

幾つかのレコーダーが同時に存在することができます。 個々のレコーダーは一つのファイルに対応付けられています。 ファイル名はレコーダーを重ならない他と区別するものとして使われます。 使われていないファイルでの recorder タスクの最初の呼び出しにより、 (与えられたパラメータを用いて)レコーダーが生成されます. そして、それをビルドのリスナーに加えます。 これ以降の、このファイル名を用いた全ての recorder タスクの呼び出しは、 そのレコーダーの状態(レコード中か、そうでないか)あるいは、 他のプロパティ(ログレベルなど)を変更します。

幾つかの技術的な問題: ファイルの出力ストリームは、 "finished"イベント (buildFinished, targetFinished and taskFinished) でフラッシュされ、 buildFinishedイベントで閉じられます。

パラメータ

属性 説明 必須
name このロガーが割り当てられるファイルの名前 yes
action これは、ロガーに対し何をするか指定します: レコードの開始、停止など。 このログファイルに対し、 recorder タスクへの呼び出しが最初であり、 この属性が指定されていない場合、 この属性のデフォルト値は"start"です。 この属性が、以降の呼び出しで指定されない場合、 状態は前と同じままです。 [値 = {start|stop}, デフォルト = 状態変更しない] no
append レコーダーはファイルに追記すべきか、 新しいファイルを作るべきか。 この属性は、 このタスクがこのファイルに対し最初に呼び出された時のみ適用可能です。 [値 = {yes|no}, デフォルト=no] no
emacsmode trueに設定された場合、 Ant の -emacs コマンドラインスイッチのように [task]バナーを取り除きます。 no、デフォルトはfalse
loglevel このレコーダーインスタンスが記録するログのレベル。 これは、(appendのように) 一度きりのパラメータではありません。-- ビルドプロセスが続く限り、 ログレベルを増減できます。 [値= {error|warn|info|verbose|debug}、デフォルト = 変更しない] no

次の build.xml ファイルの一部は、 <javac>タスクのみを記録するためのレコーダーの使用法の例です:

    ...
    <compile >
        <record name="log.txt" action="start"/>
        <javac ...
        <record name="log.txt" action="stop"/>
    <compile/>
    ...

次の二つの <record> の呼び出しは、 二つのレコーダーを設定します: 一つは、ファイル "records-simple.log" にログレベル info(デフォルト)で書き出し、 もう一つは、ファイル"ISO.log"にログレベル verboseで書き出します。

    ...
    <record name="records-simple.log"/>
    <record name="ISO.log" loglevel="verbose"/>
    ...

注意

将来、可能ならば加えたい幾つかの機能があります。 これには次のような事が含まれています:

属性 説明 必須
listener デフォルトリスナーに代わって、この時点から使いたいビルドリスナーのクラス名 no
includetarget カンマで区切られた自動的に記録したいターゲットのリスト。 この値が"all"の場合、 全てのターゲットが記録されます。 [デフォルト = all] no
excludetarget no
includetask 自動的に記録したり、しなかったりするタスクのリスト。 includetarget/excludetargetが競合することもあるので、 これは難しいかもしれない。 (例: includetarget="compile" exlcudetask="javac"、これでどうなるか) no
excludetask no
action 柔軟性を高めるために action 属性を追加する。 出力ストリームを閉じるcloseのようなもの no

Copyright © 2001-2004 The Apache Software Foundation. All rights Reserved.

[訳注:これは漆島賢二の訳を参考に、横田聡が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]