Log4Eはログ出力コードの入力を支援するプラグインです。プログラム中のログを埋め込む場所は、メソッドの先頭やメソッドの戻り値を返す直前であったり、例外が発生した場所など、おおよそ決まっています。Log4Eはこのような定型的なログ出力のコーディングを支援する機能があります。
■特長
・複数のログ実装に対応
Log4j、Commons Logging、JDK 1.4のLogging APIに対応したコードの入力をサポートしています。
・定型的な場所へのコード入力支援
メソッドの入力値と戻り値、例外発生個所など、お決まりの位置のログ出力コードの入力を支援します。
・System.outのスタックトレースの置換
System.outとException#printStackTraceをログを利用したコードへ置換します。
・パフォーマンスの最適化
ログレベルのチェックを行っていないログ出力のコードをログレベルのチェックを行うように変更することにより、パフォーマンスの最適化を図ります。例えば、ログの中で文字列の結合などをしているとき、ログ出力を無効にした場合、高いパフォーマンスが得られるようになります。
Log4Eには、無償のFreeと有償のProがあります。Proでは、プロジェクトごとにLog4Eの設定を変更できたり、getter/setterを無視したり、編集可能なプレビューが利用できるなど、無料で利用できるFree版より高機能となっています。ここでは、無償で利用できるFreeを紹介します。
■入手方法
Log4Eのダウンロードサイト(http://log4e.jayefem.de/index.php/Download)から、Eclipse 3.x Free:の項目にあるプラグインde.jayefem.log4e_free_1.0.0.zipをダウンロードします。
■使い方
まず、ログ実装の設定を行います。
[ウィンドウ]→[設定]→[Log4E]でLog4Eの設定画面を表示して、[Templates]欄でログの実装を選択します。ログは、[log4j]、[commons-logging]、[jdk1.4]の中から選択します。デフォルトの設定は[log4j]となっていますので、log4jを利用する場合は、特に設定は必要ありません。本稿では、[commons-logging]を利用した例で説明します。
Javaエディタのコード中で、右クリック→[Log4E]を選択し、次のメニューを選択します。
各メニューの機能は次のとおりです。
項目 | 機能 |
Declare Logger | ロガーの宣言を追加 |
Log this variable | 変数をログに出力 |
Log at this position... | 現在の場所にログを埋め込む |
Log this method | メソッドの開始位置と、メソッドを抜ける前の位置(return/throw/メソッドの終わり)にログを埋め込む |
Log this class | クラス内のメソッドの先頭とメソッドから抜ける直前、例外が発生した直後の場所にログを埋め込む |
Re-apply in this method | 現在のメソッドにもう一度Log4Eによるログ出力ルールを適用 |
Re-apply in this class | 現在のクラスにもう一度Log4Eによるログ出力ルールを適用 |
Substitute System.out's in this method | メソッド内のSystem.outログを利用したコードに書き換える |
Substitute System.out's in this class | クラスド内のSystem.outをログを 利用したコードに書き換える |
・動作例
ここでは、[Log at this position...]を選択します。すると、次のようなログ設定画面が表示されます。
各項目に入力する値は、次のとおりです。
・Logger message
ログメッセージを入力します。
・Method parameters
ログに出力するメソッドのパラメータを選択します。選択は[Shift]+[Space]キーにより行います。
・Available local variables
ログに出力するローカル変数を選択します。Include parameters type info、およびInclude variable type infoを選択すると、出力する変数の型情報も一緒に出力します。
上記の情報を入力し、終了ボタンを押すと、ログ出力コードが生成されます。
Log4Eを利用すると、ログ出力に必要なコード自動的に生成してくれるので便利です。出力する変数を一覧から選ぶことができるため、変数の書き忘れを防止できたり、if文でログレベルを判別するコードを生成することにより、パフォーマンスの最適化も行うことができます。
Copyright © ITmedia, Inc. All Rights Reserved.