Maven2 で commons-logging 1.1 を使うのは気が乗らないので(前回参照)、Java の標準 API に含まれている java.util.logging パッケージの簡単な使い方を見てみましょう(一覧)。
参考 URL はJava TM Logging Overview と API ドキュメントです。
基本的な使い方は commons-logging と殆ど同じです。
サンプル・コード
とりあえず、サンプル・コードを書いてみると、こんな感じ(commons-logging の場合のサンプルは こちら):
import java.util.logging.Logger; import junit.framework.TestCase; public class JdkLoggingTest extends TestCase{ // 1. Logger オブジェクトを取得する。 private static Logger LOGGER = Logger.getLogger(JdkLoggingTest.class.toString()); public void test(){ // 2. ログ出力メソッドを呼び出してログ出力。 LOGGER.finest("finest"); LOGGER.finer("finer"); LOGGER.fine("fine"); LOGGER.config("config"); LOGGER.info("info"); LOGGER.warning("warning"); LOGGER.severe("severe"); } }
これを実行すると
2007/09/04 4:53:30 JdkLoggingTest test
情報: info
2007/09/04 4:53:30 JdkLoggingTest test
警告: warning
2007/09/04 4:53:30 JdkLoggingTest test
致命的: severe
と出力されます。
API の使い方
commons-logging でのログの取り方の手順は
- Log オブジェクトを取得する。
- Log オブジェクトのログ出力メソッド*1を呼び出して、ログを出力する。
でした。 java.util.logging でも大まかな手順は同じです:
- Logger オブジェクトを取得する。
- Logger オブジェクトのログ出力メソッドを呼び出して、ログを出力する。
API レベルでの違いは:
- ログを出力するためのクラスは Logger*2。
- Logger オブジェクトは Logger クラスの static メソッド、getLogger(String) を用いる*3。 引数の文字列は Logger の名前(ID)です。
- ログ出力用のメソッドが違う。 詳しくは次節。
ログ・レベル
Logger クラスに定義されているログ出力用のメソッドを表にまとめておきます:
ログ・レベル | ログ出力メソッド | 内容 | コンソール出力 | commons-logging では |
---|---|---|---|---|
SEVERE | severe() | 深刻な失敗 | Yes | fatal(), error() |
WARNING | warning() | 潜在的な問題 | Yes | warn() |
INFO | info() | 情報 | Yes | info() |
CONFIG | config() | 静的な構成 | No | - |
FINE | fine() | トレース情報 | No | debug() |
FINER | finer() | 少し詳細なトレース情報 | No | - |
FINEST | finest() | 詳細なトレース情報 | No | trace() |