倭マン's BLOG

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

commons-logging は使ってはいけない?

GMaven の使い方を見ていると「SLF4J (Simple Logging Facade for Java)」というライブラリが出て来ました()。

SLF4J の説明を読むと

The Simple Logging Facade for Java or (SLF4J) serves as a simple facade or abstraction for various logging frameworks, e.g. java.util.logging, log4j and logback, allowing the end user to plug in the desired logging framework at deployment time.

となっていて、なんか「commons-logging のコンセプトと同じじゃねぇ?」と疑問が。

理由は「Taxonomy of class loader problems encountered when using Jakarta Commons Logging」に載ってました。

結論から言うと、「commons-logging をサーバーサイドで使用すると、クラスローダの問題で、適切なクラスが上手くロードされない」ってな感じのことらしいです。 解決方法として commons-logging のインターフェースをそのまま使える修正もできるようですが、SLF4J 使うのが手っ取り早いようで。 幸い、使い方はあまり変わらないか、むしろ柔軟になっているようなので。

ただ、この記事の対象となっているのは commons-logging 1.0.4 らしく、また、commons-logging のリリースノート()を見ると

1.1 Release - 10 May 2006

This release makes several changes that are intended to resolve issues that have been encountered when using commons-logging in servlet containers or j2ee containers where complex classpaths are present and multiple copies of commons-logging libraries are present at different levels.

となっていて、バグが修正されてるっぽいです。

Jakarta Commonsクックブック ―Javaプロジェクト必須のレシピ集

Jakarta Commonsクックブック ―Javaプロジェクト必須のレシピ集