倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

プラグインを作ろう! (3) -- Log

今回は、処理の実行中にコンソール等にメッセージを出力する方法を見てみましょう。 これには Mojo#getLog() メソッドで取得できる Log オブジェクトを使います。

Log インターフェース


Log インターフェースは、定義されているメソッド、使い方などが commons-logging に定義されてある Log インターフェースと殆ど同じです*1。 ただし、メッセージを作成するための引数の型が String ではなく CharSequence になっている部分が違います。 これは、String だけでなく、StringBuilderStringBuffer なども引数に渡せるようにするためのようです。

各種メソッドは以下の通り:

メソッド名 内容 使用目安 コンソール出力 コードガード・メソッド
error エラー 実行時のエラー、予期されていない状態に陥ったとき Yes isErrorEnabled()
warn 警告 非推奨な API を使用したなどの、好ましくない状況、状態に陥ったとき Yes isWarnEnabled()
info 情報 関心のある何らかのイベントが発生したとき Yes isInfoEnabled()
debug デバッグ システムの処理の流れを記録するとき No isDebugEnabled()


コードガード・メソッドとは、(大抵パフォーマンスのために)実際にメッセージ出力を行う前にそれらの出力が可能かどうかを判定するためのメソッドです。

if(isWarnEnabled())
    warn("何らかのメッセージ");

という風に使います。

*1:commons-logging の Log インターフェースに定義されているにメソッドついては、以前の記事参照。