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 の設定は、プログラム、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 潜在的に有害な状況を示すイベント
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 に従って再配布できる。

参考情報