JDK1.4 logging

JDK1.4で追加されたロギング機能を使ってみた。JDKに入ったということで、各種のライブラリがそれぞれ違うロギングメカニズムを使うという悲惨な状況からは解放されるのだが、しかしAPIとしては今ひとつconvenience methodsが足りないというかそういう印象がする。

例えば、クラス毎に


class Foo {
private static final Logger logger = Logger.getLogger(Foo.class.getName());
}

というパターンは多いと思うのだが、こんなのもちょっとしたユーティリティーメソッドを追加しさえすれば


class Foo {
// the class name can be obtained by examining the stack trace
// from within the method
private static final Logger logger = Logger.getClassLogger();
}

とできてもっと書きやすかったのに。

一番だめな点は、Javaプログラムを起動する際にログの設定を変更するのが大変面倒なこと。一々プロパティファイルを書いて、それをシステムプロパティで渡さないといけない。そのような機能があるのは望ましいことだが、もっと簡単なケース、例えば単独のJ2SEアプリケーションをデバッグみたいなケースを、もっと簡単にできるはずなのに。

数々のロギングライブラリの成果を基にして作られたにしては貧弱すぎる。まぁ、最初のバージョンから巨大すぎるよりはましか。