Logback
Logback の概要
Logback は、log4j の後継プロジェクトとなることを目的として、log4j の作者である Ceki Gülcü によって設計された。
Logback は堅牢なロギングシステム設計で得た 10 年の経験をもとに、既存のロギングシステムより高速で、使用するリソースも少ない。
また、Logback は他のロギングシステムにはない独自の便利な機能を提供する。
現在 Logback は logback-core、logback-classic、logback-access の 3 つのモジュールに分かれている。
- logback-core モジュールは、他の 2 つのモジュールのベースとなる。
- logback-classic モジュールは、大幅に改善された形で log4j 1.x の内容を取り込むことができる。
- logback-access モジュールは、Tomcat や Jetty などのサーブレットコンテナと統合され、HTTP アクセスロギング機能を提供する。
Logback の主な特徴
主な特徴は次のとおりである。
- 高速化とメモリ削減
- log4j 1.x をもとに、特定の重要な実行パスが約 10 倍高速に実行されるように書き直され、メモリ使用量も小さくなっている。
- 汎用性
- logback-classic は SLF4J API をネイティブに実装しているため、Logback と log4j 1.x や
java.util.logging(JUL) などの他のロギングフレームワークを簡単に切り替えられる。
- logback-classic は SLF4J API をネイティブに実装しているため、Logback と log4j 1.x や
- 柔軟性
- Logback の設定は、プログラム、XML、または Groovy 形式で表現されたスクリプトを使って構成できる。既存の log4j ユーザーは、Web アプリケーションを使って
log4j.propertiesファイルをlogback.xmlに変換することもできる。また、構成ファイルの条件付き処理をサポートしているため、単一の構成ファイルで開発、テスト、本番などのさまざまな環境を適切に対象にできる。
- Logback の設定は、プログラム、XML、または Groovy 形式で表現されたスクリプトを使って構成できる。既存の log4j ユーザーは、Web アプリケーションを使って
- 広範なフィルタリング機能
- log4j 1.x が提供するものより広範なフィルタリング機能が含まれている。たとえば、問題を特定するユーザーだけをデバッグレベルに設定し、他のユーザーは警告レベルでログを維持できる。
Logback、Log4j、Log4j2 の性能比較
単位: ops/ms
| スレッド | log4j 同期 | log4j 非同期 | log4j2 同期 | log4j2 非同期 | Logback 1.3.0 同期 | Logback 1.3.0 非同期 |
|---|---|---|---|---|---|---|
| 1 | 987.08 | 745.34 | 884.33 | 844.67 | 2,139.83 | 1,760.30 |
| 2 | 542.27 | 716.09 | 1,220.76 | 819.40 | 2,276.77 | 1,821.36 |
| 4 | 639.86 | 676.35 | 1,406.60 | 770.27 | 1,836.99 | 1,799.39 |
| 8 | 633.13 | 726.21 | 1,257.63 | 733.25 | 1,787.62 | 1,774.99 |
| 16 | 585.13 | 693.74 | 1,211.31 | 722.34 | 1,813.09 | 1,815.10 |
| 32 | 643.85 | 657.08 | 1,203.27 | 704.08 | 1,782.81 | 1,751.21 |
| 64 | 576.67 | 696.21 | 1,236.37 | 726.15 | 1,740.27 | 1,644.81 |
Logback の主な機能
主な機能は次のとおりである。
- ログ出力方法を指定する機能 (Logger)
- ログ出力先を指定する機能 (Appender)
- ログ出力フォーマットを指定する機能 (Layout)
- ログフィルタリング機能 (Filter)
Logback と似た機能を提供するライブラリ
- Apache Log4j
- java.util.logging (JUL)
Logback のロギングレベル
Logback は 5 つのログレベルを標準で提供する。
レベルは次の表のように順序付けられていると仮定する。
TRACE < DEBUG < INFO < WARN < ERROR
| レベル | 説明 |
|---|---|
| TRACE | 重要度が非常に低い情報イベント |
| DEBUG | 重大度が低い情報イベント |
| INFO | 全体的な進行状況を示すイベント |
| WARN | 潜在的に有害な状況を示すイベント |
| ERROR | エラーイベント。致命的かどうかは問わない |
Logback の動作環境
前提となる動作環境は次のとおりである。
-
サーバー OS
- Java Runtime Environment (JRE) の動作環境に準じる
-
その他の動作環境
- Logback バージョン 1.3.x 以降では、ビルドに Java 9 が必要である。ただし、Java 8 以降で実行できる。
- Logback バージョン 1.2.x の場合は Java 6.x が必要である。
Logback ライセンス
- Logback は Eclipse Public License v1.0 または Lesser General Public License version 2.1 に従って再配布できる。
参考情報
- Logback 公式サイト
- Logback ダウンロードページ
- Logback ソースリポジトリ
- Logback 公式ドキュメント
- Logback 告知ページ