ロガーとリスナー

概要

Ant にはビルドプロセスをモニターできるようにするために、 リスナーとロガーという 2 つの関連する機能があります。

リスナー

リスナーは次のイベントを警告します:

ロガー

ロガーはリスナーの能力を拡張し、次の機能を加えます:

組み込みのリスナーとロガー

クラス名 説明 種類
org.apache.tools.ant.DefaultLogger -logger コマンドラインオプションにより上書きされない限り暗黙的に使われるロガー BuildLogger
org.apache.tools.ant.NoBannerLogger このロガーはターゲット出力が無い場合に、出力を省略します。 BuildLogger
org.apache.tools.ant.listener.MailLogger 出力は同じように生成され、ビルドが終った時にEメールを送れるような DefaultLogger を拡張したもの BuildLogger
org.apache.tools.ant.listener.AnsiColorLogger ビルド出力をカラーにする BuildLogger
org.apache.tools.ant.listener.Log4jListener ログ生成を高度にカスタマイズするために Log4J にイベントを渡します BuildListener
org.apache.tools.ant.XmlLogger ビルド情報を XML ファイルの書き出す BuildLogger

DefaultLogger

単純に Ant を通常通り実行するか、あるいは:

ant -logger org.apache.tools.ant.DefaultLogger

NoBannerLogger

ターゲット出力が無い場合に、出力を省略します

ant -logger org.apache.tools.ant.NoBannerLogger

MailLogger

MailLogger は DefaultLogger により全てのログ出力(Ant の標準出力)をキャプチャーし、結果の反対のメッセージをオフにしながら、 Eメールのリストに対し、成功あるいは失敗のメッセージを送ります。

MailLogger を実行制御するプロパティ:

プロパティ 説明 必須
MailLogger.mailhost 使用するメールサーバ No、デフォルトは "localhost"
MailLogger.port メールサーバ用の SMTP ポート No, デフォルトは "25"
MailLogger.user SMTP auth のユーザー名 Yes, SMTPサーバで、SMTP auth が必要であれば、
メールのメッセージは、認証の後、Mime を使って送信されます。JavaMailが必要。
MailLogger.password SMTP auth のパスワード Yes, SMTPサーバで、SMTP auth が必要であれば、
メールのメッセージは、認証の後、Mime を使って送信されます。JavaMailが必要。
MailLogger.ssl ssl が必要な場合、on か true
この機能には JavaMail が必要です。
no
MailLogger.from メールの "From" アドレス メールを送る場合 Yes
MailLogger.replyto メールの "replyto" アドレス。複数をカンマ区切りで指定 No
MailLogger.failure.notify ビルド失敗のメールを送るか No、デフォルトは "true"
MailLogger.success.notify ビルド成功のメールを送るか No、デフォルトは "true"
MailLogger.failure.to カンマ区切りの失敗メッセージ送信先アドレス 失敗メールを送る場合 Yes
MailLogger.success.to カンマ区切りの成功メッセージ送信先アドレス 成功メッセージを送る場合 Yes
MailLogger.failure.subject ビルド失敗の時の件名 No、デフォルトは "Build Failure"
MailLogger.success.subject ビルド成功の時の件名 No、デフォルトは "Build Success"
MailLogger.properties.file 他の値を上書きするプロパティファイル名 No

ant -logger org.apache.tools.ant.listener.MailLogger

AnsiColorLogger

AnsiColorLogger は、Ant の標準の出力に、 その前後に ANSI カラーコードエスケープシーケンスを置くことにより、 色付きで出力します。 これは単に、DefaultLoggerの拡張なので、 DefaultLogger が提供する全ての機能が提供されます。

AnsiColorLogger は、 メッセージの種類に依存して異なる色を割り当てることにより、 出力を区別します。

-logfile オプションと共に用いられた場合、 catやmoreなどのアプリケーションを使ってコンソールで表示する際に、 テキストが色付きで表示されるように、 出力ファイルには必要なエスケープコードが全て含まれています。

これは ANSI カラーコードをサポートする端末で動作するように設計されました。 XTerm、ETerm、(ANSI.SYSをロードした)Win9xコンソールなどで動作します。

注意: ANSI.SYSをロードしたCOMMAND.COMコンソールを使っても、 WinNT では、これは動作しません。

ユーザがデフォルトのカラーをカスタマイズしたものに上書きしたいと思った場合には、 カスタムカラーのキーと値のペアを、 ゼロ個以上含むファイルが作られなければなりません。 認識されるキーおよび、そのデフォルト値は下の通りです:

AnsiColorLogger.ERROR_COLOR=2;31
AnsiColorLogger.WARNING_COLOR=2;35
AnsiColorLogger.INFO_COLOR=2;36
AnsiColorLogger.VERBOSE_COLOR=2;32
AnsiColorLogger.DEBUG_COLOR=2;34

個々のキーは、 属性;フォアグランド色;バックグラウンド色で定義される色の組み合わせを値として取ります。 上の例においては、バックグラウンドの値は使われていません。

このファイルは ant.logger.defaults という名前のシステム変数の値として 指定し、Ant アプリケーションを起動する javaコマンドの -D オプションを使って引数として渡さなければなりません。 これを行う簡単な方法は、 ANT_OPTS 環境変数に -Dant.logger.defaults=/path/to/your/fileを加えることです。 Ant起動スクリプトはこのフラグを認識し、 java コマンドに適切に渡します。

フォーマット:

AnsiColorLogger.*=Attribute;Foreground;Background

属性は以下のいずれか:

0 -> 全属性をリセット (標準モードに戻る)
1 -> Bright (通常太字になる)
2 -> Dim
3 -> Underline
5 -> link
7 -> Reverse
8 -> Hidden

フォアグラウンド色は次のうちの一つ:
30 -> Black
31 -> Red
32 -> Green
33 -> Yellow
34 -> Blue
35 -> Magenta
36 -> Cyan
37 -> White

バックグラウンド色は次のうちの一つ:
40 -> Black
41 -> Red
42 -> Green
43 -> Yellow
44 -> Blue
45 -> Magenta
46 -> Cyan
47 -> White

ant -logger org.apache.tools.ant.listener.AnsiColorLogger

Log4jListener

カテゴリとして、個々のビルドイベントの元となるフルクラス名を用いて、 ビルドイベントを Log4J に渡します:

全ての開始イベントはINFOとして、ログ記録されます。 終了イベントは、 ステージ中でビルドが失敗したかどうかにより、 INFO あるいは ERROR のいずれかでログ記録されます。 メッセージイベントは、 Ant のログレベルに従って、 関連する Log4J のレベルに直接マップしながら、 ログ記録されます。

ant -listener org.apache.tools.ant.listener.Log4jListener

XmlLogger

リスナーとして使用されたときは、 log.xml という名前の XML ファイル、あるいは、 XmlLogger.fileプロパティがあればその値の XML ファイルに全てのビルド情報を書き出します。 ロガーとして使用されたときは、 全ての出力をコンソールか-logfileの値のファイルのいずれかに出力します。 リスナーとして使っても、ロガーとして使っても、 タスク、ターゲット、およびプロジェクトのためのタイミング情報を提供するために、 情報をバッファリングしているので、 出力はビルドが完了するまで生成されません。

デフォルトでは、 XML ファイルは "log.xsl" XSLT ファイルへの参照をカレントディレクトリに作成します; これらのうちの一つが ANT_HOME/etc にあります。 スタイルシートの URL を指定するために、 プロパティ ant.XmlLogger.stylesheet.uri を設定できます。 これは、ファイルパスは相対パスでも絶対パスでも、 また、HTTP の URL でも構いません。 このプロパティに空の文字列を指定した場合、 XSLT による変換は全く定義されません。

ant -listener org.apache.tools.ant.XmlLogger
ant -logger org.apache.tools.ant.XmlLogger -verbose -logfile build_log.xml

自分でロガーを作る

開発者向けの ビルドイベント の節をご覧ください。

注意:


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

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