今回は、Apache Jakarta Projectで開発されている「commons-logging」の概要を調べましたのでここにメモとして残します。
commons-loggingとは?
commons-loggingとは、Javaで利用できるライブラリの一つで汎用ロギングコンポーネントです。
Apache Commons Logging – Overview
Javaで有名なロギングライブラリは、log4jですがこれと何が違うのか。
実は、commons-loggingは実際のログ出力を処理しているのではなく、ロギングするための汎用的なインタフェースという位置づけのようです。
つまり、commons-loggingでログ出力処理をプログラムとして記載していても、中身は先に挙げたlog4jだったりするという感じです。
上記のような作りのため、プログラムを変更せずに設定のみでロギングライブラリを切り替えることができたりします。
調べようとした経緯
そもそもこれを調べた経緯としては、外部ライブラリのあるクラスのメソッドを実行したときに、自分が実装していない知らないログが出力されていることが分かりました。
外部ライブラリのロギングの設定は特にしていないつもりだったので、どうしてこのログが出力されるのか仕組みを知りたくなりました。
自分のソースでは、ロギングライブラリはlog4j2を使用していて、設定ファイルも用意していました。しかし、どうやらこの設定が外部ライブラリのログ出力の設定に影響していることがわかりました。なぜなら、ログのフォーマットやログレベルの設定を変更すると、外部ライブラリのログ出力に影響があったためです。
外部ライブラリのログ出力箇所を調べてみたら、このcommons-loggingと呼ばれるライブラリのインタフェースを使用していたことがわかりました。
なるほど、外部ライブラリとしては具体的なロギングの実装は使用するユーザーに任せることができる便利な仕組みであることが分かりました。
おわりに
いかがでしたでしょうか。個人的なメモという側面のため、やや読みづらい部分が多かったかもしれませんがcommons-loggingを簡単に紹介しました。もし、自分で他人に使用されるようなライブラリを作成する場合は、このような便利なライブラリを使いたいと思いました。
今回はこの辺で失礼いたします。最後までお読みいただきありがとうございました。