トップ OSS紹介 Apache Log4j

Apache Log4j

サポート対象

NRIのOpenStandiaが提供するApache Log4j最新情報

Apache Log4j情報

Apache Log4jとは

Apache Log4j(アパッチ ログフォージェイ)は、 オープンソースのJava プログラム用のロギングユーティリティ(API)です。
Apache Log4jは、2001年1月8日にバージョン1.0がリリースされて以来、Javaアプリケーションの標準的なロギングユーティリティとして長く利用されおり、単にLog4jと呼ばれることが多いです。
Apache Log4jは、設定ファイルでの設定により、デバッグ情報やエラー情報などをプログラム内からコンソール、ファイル、その他ログサーバ等に出力することができます。
また、Apache Log4jは、パフォーマンスにも十分配慮して設計されており、実際のログ出力はとても速く、柔軟性のあるロギングAPIとして世界中で広く利用されています。

2021年12月、Apache Log4j に "Log4Shell"と呼ばれる重大なセキュリティ脆弱性(CVE-2021-44228)が報告されています。これを発端に、複数の脆弱性(CVE-2021-45046、CVE-2021-45105、CVE-2021-44832)が次々と報告され、SI企業やメーカーは対応に追われ、世界的に大きな影響を与える結果となりました。古いバージョンのLog4j 2.xでは、この脆弱性を狙った攻撃を受ける可能性が高いため、早急に最新版へのアップデートやワークアラウンド対応を実施することが推奨されます。

主な機能

主な機能は以下のとおりです。

  • ログ出力方法指定機能(Logger)
  • ログ出力先指定機能(Appender)
  • ログ出力フォーマット指定機能(Layout)
  • ログフィルタリング機能(Filter)

主な特徴

主な特徴は以下のとおりです。

多彩なログ出力先

ファイル、OutputStream、java.io.Writer、 リモートLog4jサーバ、リモートUnix Syslogデーモン、NTイベントログといったさまざまなログ出力先を設定ファイルで指定可能

高速

ログ出力が非常に高速であるため、アプリケーションの実行速度を低下させにくい

柔軟性

ファイルにより設定を行うため、Log4jを使用しているアプリケーションを変更することなく各種設定変更が可能
また、設定ファイルによって、ログの出力先ごとにログ出力レベルやレイアウトを変更でき、ログ出力内容の細かなコントロールが可能

リモート監視、制御

JMXのサポートが組み込まれているため、JMX経由でアクセスすることで、アプリケーションを起動したままLog4jの各種設定変更が可能

導入事例

Apache Log4jは、オープンソースのJava プログラム用のロギングユーティリティとして、中小から大規模まで、さまざまな業種・システムで幅広く利用されています。

Apache Log4jのログレベル

Log4jは、6つのログレベルを標準提供します。この他に利用者が任意のログレベルを追加することも可能です。デフォルトのログレベルを高い(情報量が少ない)ものから低い(情報量が多い)ものへと順に並べると下表の通りとなります。

FATAL

致命的なエラー。プログラムの異常終了を伴うようなもの。コンソール等に即時出力することを想定

ERROR

エラー。予期しないその他の実行時エラー。コンソール等に即時出力することを想定

WARN

警告。廃要素となったAPIの使用、APIの不適切な使用、エラーに近い事象など、実行時に生じた異常とは言い切れないが正常とも異なる何らかの予期しない問題。コンソール等に即時出力することを想定

INFO

情報。実行時の何らかの注目すべき事象(開始や終了など)。コンソール等に即時出力することを想定。従ってメッセージ内容は簡潔に止めるべき

DEBUG

デバック用の情報。システムの動作状況に関する詳細な情報。コンソールではなくログ上にだけ出力することを想定

TRACE

トレース情報。更に詳細な情報。コンソールではなくログ上にだけ出力することを想定

なお、すべてのレベルのログを出力する場合は「ALL」を、ログ出力を停止する場合は「OFF」を指定します。

動作環境

前提となる動作環境は、以下のとおりです。

  • サーバOS
    Java Runtime Environment(JRE)の動作環境に準ずる
  • その他動作環境
    • Log4j 2.3.2まで: Java 6以降(すでにEOL)
    • Log4j 2.12.4 まで:Java 7以降
    • Log4j 2.13.0 以降: Java 8以降

※バージョンによって異なりますので、詳細はお問い合わせください。

Apache Log4jのライセンス

Apache Log4jは、Apache2.0ライセンスです。 Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。

製品ダウンロード

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • Logstash

    Logstash

    ログスタッシュ。Elastic社により開発された、データ収集ツールです。

  • Logback
    サポート対象

    Logback

    ログバッグ。Javaのロギング実装の切り替えを実現するライブラリです。

  • Fluentd
    サポート対象

    Fluentd

    フルエントディ。様々なデバイスやシステムからログ収集を行い、NoSQLデータベースやテキストなど様々フォーマットに変換・格納するログコネクタです。

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。