(Translated by https://www.hiragana.jp/)
Log4j - Wikipedia コンテンツにスキップ

Log4j

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
Apache Log4j
開発元かいはつもと Apacheソフトウェア財団ざいだん
最新さいしんばん
2.23.1[1] ウィキデータを編集 / 10 3がつ 2024ねん (10 3がつ 2024)[2]
リポジトリ ウィキデータを編集
プラットフォーム クロスプラットフォーム
種別しゅべつ ロギングツール
ライセンス Apache 2.0 ライセンス
公式こうしきサイト logging.apache.org/log4j
テンプレートを表示ひょうじ

Apache Log4jは、Javaベースのロギングユーティリティである。Ceki Gülcüによってかれたもので、Apache Software FoundationのApache Logging Servicesプロジェクトの一部いちぶである。Log4jはいくつかのJavaロギングフレームワークのひとつである。

Gülcüはその、Log4jの後継こうけい製品せいひん提供ていきょうする意図いとで、SLF4J英語えいごばんLogback[3]プロジェクトを開始かいしした。

Apache Log4jチームは、Log4j 1の後継こうけいとなるバージョン2を作成さくせいした[4]。Log4j 2は、Log4j 1.2、1.3、java.util.logging、Logbackの問題もんだいてん焦点しょうてんてて開発かいはつされ、これらのフレームワークにあらわれた問題もんだい対処たいしょしている[5]。 さらに、Log4j 2はプラグイン・アーキテクチャを提供ていきょうし、ぜんバージョンよりも拡張かくちょうせいたかくなっている。Log4j 2は、1.xバージョンとの後方こうほう互換ごかんせいはない[6]が、「アダプター」が利用りようできる。

2015ねん8がつ5にち、Apache Logging Services Project Management Committeeは、Log4j 1が寿命じゅみょうたっしたため、Log4j 1のユーザーはApache Log4j 2へのアップグレードを推奨すいしょうすると発表はっぴょうした[7]

機能きのう

[編集へんしゅう]

ログレベル

[編集へんしゅう]

Log4jは、6つのログレベルを標準ひょうじゅん提供ていきょうする。このほか利用りようしゃ任意にんいのログレベルを追加ついかすることも可能かのうである。ログレベルがたかい(情報じょうほうりょうすくない)ものからひくい(情報じょうほうりょうおおい)ものへとじゅんならべると下表かひょうとおり。

FATAL 致命ちめいてきなエラー。プログラムの異常いじょう終了しゅうりょうともなうようなもの。コンソールとう即時そくじ出力しゅつりょくすることを想定そうてい
ERROR エラー。予期よきしないその実行じっこうエラー。コンソールとう即時そくじ出力しゅつりょくすることを想定そうてい
WARN 警告けいこくはい要素ようそとなったAPIの使用しよう、APIの不適切ふてきせつ使用しよう、エラーにちか事象じしょうなど、実行じっこうしょうじた異常いじょうとはれないが正常せいじょうともことなるなんらかの予期よきしない問題もんだい。コンソールとう即時そくじ出力しゅつりょくすることを想定そうてい
INFO 情報じょうほう実行じっこうなんらかの注目ちゅうもくすべき事象じしょう開始かいし終了しゅうりょうなど)。コンソールとう即時そくじ出力しゅつりょくすることを想定そうていしたがってメッセージ内容ないよう簡潔かんけつめるべき
DEBUG デバッグよう情報じょうほう。システムの動作どうさじょうきょうかんする詳細しょうさい情報じょうほう。コンソールではなくログじょうにだけ出力しゅつりょくすることを想定そうてい
TRACE トレース情報じょうほうさら詳細しょうさい情報じょうほう。コンソールではなくログじょうにだけ出力しゅつりょくすることを想定そうてい

設定せっていファイル

[編集へんしゅう]

Log4jは、ふたつの方法ほうほう設定せってい可能かのうである。ひとつはプロパティファイル、もうひとつはXMLファイルである。両者りょうしゃとも、3つの主要しゅようコンポーネント(ロガー、アペンダ、レイアウト)について定義ていぎすることができる。ファイルにより設定せっていおこなうため、Log4jを使用しようしているアプリケーションを変更へんこうすることなく、ロギングをon/offできるという利点りてんがある。たとえば、問題もんだい発生はっせいするまではロギングをoffで動作どうささせておき、設定せっていファイルを変更へんこうすることで簡単かんたんにロギングを再開さいかいする、という使つかかたができる。

ロガー (Loggers) は論理ろんりてきなログファイルめいであり、Javaアプリケーションはこれらの名前なまえ意識いしきする。個々ここのロガーにて取得しゅとくするログのレベル(FATAL、ERROR等々とうとう)はロガーごと独立どくりつ設定せっていできる。ふるいバージョンのLog4jでは、これらは「カテゴリ」と「優先ゆうせん」とばれていたが、げんバージョンではそれぞれ「ロガー」と「レベル」とんでいる。

アペンダ (Appenders) は具体ぐたいてき出力しゅつりょく処理しょりおこなう。アペンダには様々さまざま種類しゅるいがあり、それぞれ内容ないようあらわ名前なまえいている。たとえばFileAppender、ConsoleAppender、SocketAppender、SyslogAppender、NTEventLogAppenderなどがあり、SMTPAppenderというものさえある。任意にんいのロガーには複数ふくすうのアペンダを付与ふよできるので、おなじログ情報じょうほうたとえばローカルのファイルとのコンピュータじょうソケット英語えいごばんリスナに同時どうじ出力しゅつりょくする、などという使つかかた可能かのう

レイアウト (Layouts) はいちけんずつのログを整形せいけいするためにアペンダによって参照さんしょうされる。たとえばくだり単位たんい出力しゅつりょくするログを整形せいけいする方法ほうほうとしてPatternLayoutというものがあり、これはC言語げんごprintf関数かんすうによく書式しょしき指定してい使つかえる。ほかにもHTMLLayoutやXMLLayoutなどがあり、これらはそれぞれHTMLやXMLの書式しょしき整形せいけいしたい場合ばあい使つかえる。

設定せっていれい

[編集へんしゅう]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC
"http://logging.apache.org/log4j/docs/api/org/apache/log4j/xml/log4j.dtd">
<log4j:configuration>
    <!-- アペンダとは出力しゅつりょくさきのことであり、たとえばコンソールやファイルをす。
    アペンダの名前なまえきにめてよい。-->
    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
        </layout>
    </appender>
 
    <!-- 'org.springframework'カテゴリのロガーは、infoレベル以上いじょうのメッセージのみロギングする。
    もしロガーをクラスめい検索けんさくし(れい:Logger.getLogger(AClass.class))AClassが
    springframework.orgパッケージにぞくするなら、そのロガーはこのカテゴリにぞくする。-->
    <logger name="org.springframework">
        <level value="info"/>
    </logger>

    <!-- springは原則げんそくとしてinfo以上いじょうのログしからないが、PropertyEditorRegistrySupportクラスについては
    デバッグログもしい-->
    <logger name="org.springframework.beans.PropertyEditorRegistrySupport">
        <level value="debug"/>
    </logger>
 
    <logger name="org.acegisecurity">
        <level value="info"/>
    </logger>
 
    <root><!-- rootカテゴリ -->
        <!-- 別途べっと定義ていぎかぎり、デバッグレベル以上いじょうすべてのメッセージをロギングする。-->
        <!-- 別途べっと定義ていぎかぎり、すべてのログは「stdout」アペンダにてロギングされる。 -->
        <level value="debug" />
        <appender-ref ref="stdout" />
    </root>
</log4j:configuration>

訳注やくちゅう:この設定せっていれいちゅう出現しゅつげんする「カテゴリ」という用語ようごと、「ロガー」の旧称きゅうしょうとしての「カテゴリ」との関係かんけいしょう。)

ログビューア

[編集へんしゅう]

ApacheにはChainsaw英語えいごばんというべつプロジェクトが存在そんざいしており、これはLog4jにて生成せいせいされたログファイルを利用りようする。ChainsawはJavaベースのGUIビューアであり、豊富ほうふ機能きのうつ。ChainsawもLog4jに類似るいじした設定せっていファイルを使用しようする。Log4jけのビューアはほかにもあるが(れいlog2webオープンソースかつウェブベース)、Chainsawに比較ひかくして機能きのうすくない。

2021ねん12月9にち、Log4j 2のリモートコード実行じっこうゼロデイ脆弱ぜいじゃくせいLog4Shell(CVE-2021-44228)が表面ひょうめんした[8]影響えいきょうけるサービスには、iCloudMinecraftSteamなどがある[9][10]。この脆弱ぜいじゃくせい原因げんいんとなる機能きのうは、その数日すうじつまえ正式せいしきにリリースされたバージョン2.15.0ではデフォルトで無効むこうされている[11]。Apache Software Foundationは、CVSS深刻しんこく評価ひょうか最高さいこうてんの10に指定していした[12]。12月14にち時点じてんでは脆弱ぜいじゃくせい利用りようした攻撃こうげき観測かんそくされている[8]

脚注きゃくちゅう

[編集へんしゅう]
  1. ^ Release 2.23.1” (10 3がつ 2024). 22 3がつ 2024閲覧えつらん
  2. ^ Log4j – Changes - Apache Log4j 2”. apache.org. Apache Software Foundation. 2021ねん12月18にち閲覧えつらん
  3. ^ Logback Home”. Logback.qos.ch. 2014ねん7がつ24にち閲覧えつらん
  4. ^ Logback Home”. Logback.qos.ch. 2014ねん7がつ24にち閲覧えつらん
  5. ^ Goers, Ralph (2019ねん12月15にち). “Why was Log4j 2 created?” (英語えいご). Ralph Goers. 2021ねん12月11にち閲覧えつらん
  6. ^ Log4j 2 Guide - Apache Log4j 2: News”. Logging.apache.org (2014ねん7がつ12にち). 2014ねん7がつ24にち閲覧えつらん
  7. ^ Apache™ Logging Services™ Project Announces Log4j™ 1 End-Of-Life; Recommends Upgrade to Log4j 2”. blogs.apache.org (2015ねん8がつ5にち). 2016ねん7がつ3にち閲覧えつらん
  8. ^ a b 日本にっぽん放送ほうそう協会きょうかい. ““ログソフト”に深刻しんこくなぜいじゃくせい IPA 早急そうきゅう対策たいさくびかけ”. NHKニュース. 2021ねん12月14にち閲覧えつらん
  9. ^ Goodin (December 9, 2021). “Zeroday in ubiquitous Log4j tool poses a grave threat to the Internet”. Ars Technica. December 10, 2021閲覧えつらん
  10. ^ Worst Apache Log4j RCE Zero day Dropped on Internet”. Cyber Kendra (December 9, 2021). December 10, 2021閲覧えつらん
  11. ^ Apache Log4j Security Vulnerabilities”. 2021ねん12がつ10日とおか閲覧えつらん
  12. ^ Mott, Nathaniel (December 10, 2021). “Countless Servers Are Vulnerable to Apache Log4j Zero-Day Exploit”. PC Magazine. December 10, 2021閲覧えつらん

外部がいぶリンク

[編集へんしゅう]