
Javaでは、ログ出力のライブラリがいっぱいあって、どれを選んだらよいか悩みますよね。
Javaのロギングライブラリの中でも、有名なライブラリをまとめてみました。
log4j
古くから、利用されてきた実績も多い、古参のライブラリ
java.util.logging
Java1.4(2002年ごろ)から標準APIとして利用可能なクラス。log4jを参考にして作られました。ただ、log4jに劣っていたため標準だが置き換わることはなかったです。
Apache Commons Logging
ログ出力実装を切り替えられる代表的なログ出力ライブラリ。2000年代半ばくらいに当時よく使われていた「log4j」と「java.util.logging」の二つのライブラリを使っているアプリケーションで混在してしまっておりアプリケーションの運用が乱雑になっていました。
そこで、登場したのが今ライブラリです。API経由で出力を要請されたログを適切にロギングライブラリを選んで委譲してくれるライブラリになります。
SLF4J
昨今のJava開発ではデファクトスタンダードになっています。
ログ出力実装を切り替えられる代表的なログ出力ライブラリ。Apache Common Loggingとほぼ同等の機能を提供していますが、より易しく扱うことが可能です。アダプタという仕組みを利用していて今までどのライブラリ(log4j、java.util.logging)を利用していてもうまくラップしてくれてうまく扱えます。
もちろん、他のライブラリをアダプタ経由でSLF4Jを扱っても良いですが、直接SLF4Jを扱うことも可能です。
共通した機能
多くのライブラリがありますが、いずれのロギングライブラリで共通した機能をご紹介します。
- メソッドを呼び出すだけで、文字列をログ出力できる。
- ログ出力時にログレベル(シビリティや、重要度なんて呼んだりもします。)も出力できる。
ログ出力時のログレベルに関しては、下記の記事でも解説しています。
実装を切り替えられるロガーについて
「Commons-Logging」や、「SLF4J」等では、そうですが、「実装を切り替えることができるロガー」です。
あくまで、それらライブラリは、フロントエンドに徹して、裏側の処理は、「java.util.logging」や「log4j」でやらす等自由に設定でログ出力ライブラリを切り替えることができます。
メリット
後で、ロギングライブラリを切り替えたいといった際に、非常に楽に切り替えることが可能です。
この記事へのコメントはありません。