Javaのロガー(Logger) は種類が沢山あって分かりにくいので、まとめてみた。
Javaのロガー(Logger) の種類
Apache log4j
Apache log4jは、Javaのロギングユーティリティ。元々はCeki Gülcüにより開発されていたが、現在はApacheソフトウェア財団のプロジェクトの一つとなっている。
このライブラリをもとに他のライブラリが作られていきました。
こちらが公式サイトです。
・https://logging.apache.org/log4j/2.x/
ログのレベルは以下の6段階です。
- FATAL - 致命的なエラー
- ERROR - エラー
- WARN - 警告
- INFO - 情報
- DEBUG - デバッグ
- TRACE - トレース
java.util.logging
java.util.logging は、Java標準のロギングライブラリです。
java.util.loggingはLog4jを参考に作られましたが、ところどころ使いづらかったため、標準だったにも関わらず、log4jに置き換わることはできませんでした。
そのため、Javaの世界には2つのロギングライブラリが残ってしまいました。
ログのレベルは以下の7段階です。
- SEVERE - 重大なメッセージ
- WARNING - 警告メッセージ
- INFO - 情報メッセージ
- CONFIG - 静的な構成メッセージ
- FINE - 詳細なトレースメッセージ
- FINER - かなり詳細なトレースメッセージ
- FINEST - 非常に詳細なトレースメッセージ
Apache Commons Logging
Apache Commons Loggingは、ロギングのための抽象レイヤーでそれ自身は何もしません。
Apache Commons Logging は、 Log4j や java.util.logging など他のロガー実装に処理を委譲してくれるブリッジ ・ ライブラリです。
こちらが公式サイトです。
・https://commons.apache.org/proper/commons-logging/
ログのレベルは以下の6段階です。
- FATAL - 致命的なエラー
- ERROR - エラー
- WARN - 警告
- INFO - 情報
- DEBUG - デバッグ
- TRACE - トレース
LogbackとSLF4J
log4jを作ったCeki Gülcüが、log4j互換の後継として作ったものが、LogbackとSLF4Jです。
よって、LogbackとSLF4Jが最も優れたロギングライブラリと考えてよいでしょう。
こちらがLogbackの公式サイトです。
SLF4Jとは、Simple Logging Facade for Javaのことです。
シンプルなファサードパターンによってJavaロギングAPIを提供します。
SLF4Jはファサードなので、log4j、java.util.logging、Logbackにログ出力を移譲します。
Apache Common Loggingと同じ立ち位置ですね。
こちらがSLF4Jの公式サイトです。
コメント