Logbackの概要
Logbackは、log4jの後継プロジェクトとなることを目的としており、log4jの創設者であるCeki Gülcüによって設計されました。
Logbackは強固なロギングシステムの設計で得られた10年の経験に基づいており、既存のロギングシステムよりも高速で、使用するリソースも小さくなっています。
また、Logbackは他のロギングシステムにはない独自の便利な機能を提供しています。
現在、Logbackはlogback-core、logback-classic、logback-accessの3つのモジュールに分かれており、logback-coreモジュールは、 他の2つのモジュールのベースとなり、logback-classicモジュールは、大幅に改善されたバージョンのlog4j1.xの内容を吸収できます。
logback-accessモジュールは、TomcatやJettyなどのサーブレットコンテナと統合して、HTTPアクセスログ機能を提供します。
Logbackの主な特徴
主な特徴は以下のとおりです。
高速&メモリ削減 | log4j 1.xに基づいて特定の重要な実行パスを約10倍高速に実行するように書き直され、メモリ使用量も小さくされている。 |
---|---|
汎用性 | logback-classic はSLF4J APIをネイティブ実装しているため、Logbackとlog4j 1.xやjava.util.logging(JUL)などの他のロギングフレームワークを簡単に切り替えることができる。 |
柔軟性 | Logback の設定は、プログラム、XMLまたはGroovy形式で表現されたスクリプトを使用して構成することもでき、
既存のlog4jユーザーはWebアプリケーションを使用して、log4j.propertiesファイルをlogback.xmlに変換することもできる。 また、構成ファイルの条件付き処理をサポートしているため、単一の構成ファイルで開発、テスト、本番などのさまざまな環境を適切にターゲットにできる。 |
幅広い フィルタリング機能 |
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 | 潜在的に有害な状況を示すイベント |
ERRROR | エラーイベント(致命的であるかどうかに係わらない) |
Logbackの動作環境
前提となる動作環境は、以下のとおりです。
- サーバOS
Java Runtime Environment(JRE)の動作環境に準ずる
- その他動作環境
Logbackのバージョン1.3.x以降はビルドにJava 9が必要です。
(但し、Java8以降で実行は可能です。)
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アナウンスページ
Logbackのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。