The Ja-Jakarta Project Apache Logging Log4j

紹介

ログ文をソースコードに挿入するというのは、 デバックするためのローテクな方法です。デバッガが利用できなかったり 適用できないため、それが唯一の方法であるかもしれません。 これは、配布されたアプリケーションではよくあることです。

一方で、一部の人々からは ログ文がソースコードを汚染してしまうため、読みにくくしてしまうという意見もあります。 (我々は、その反対が正しいと思っています)。 プリ・プロセッサが利用できないJava言語では、ログ文は、 コードのサイズを増加させ、ログ記録をオフにしても、その実行速度を低下させます。 何千ものログ文を含んだ適当なサイズのアプリケーションは、速度は 特に重要となります。

Log4jでは、バイナリの アプリケーションを修正することなく、実行時にログ記録を可能にします。 Log4jパッケージは、出荷されたコードに対して重いパフォーマンスコストを 負わせることが無いように設計されています。 ログ記録の動作は、バイナリのアプリケーションを ソースから再コンパイルして変更することなく、 設定ファイルを編集するだけで完全に制御することができます。

ログ記録は 開発者にアプリケーションが失敗したとき詳細な内容を 提供します。また一方で、テストは品質保証とアプリケーションに対する信頼を 提供します。ログ記録とテストとを混同してはいけません。それらは 相補的です。ログ記録を賢く使用すれば、それが必須のツールであることが 分かります。

Log4jの特徴的な 機能のうちのひとつは、カテゴリーの継承の概念です。 カテゴリー階層を使うことで、どのログ文を出力するかを 任意にグループ化てまとめることで、とても簡単に制御することができます。 これは、ログの出力量を減らして、ログのコストを最小にするのに役立ちます。

ログ出力の 出力先は、ファイル、OutputStreamjava.io.Writer、 リモートlog4jサーバ、リモートUnix Syslogデーモン、NTイベントログと 多彩です。

またパフォーマンスも、 JDK 1.1.7Bを実行している233MHzのThinkPad上で、あるログ文を出力するか どうか決定するのにおよそ46ナノ秒です。実際のログ出力もとても速く、 SimpleLayoutを使用したときには、79マイクロ秒から、TTCCLayoutを使用した 164マイクロ秒の範囲で、そして例外を出力するときおよそ1ミリ秒です。 PatternLayoutのパフォーマンスは、ほとんど専用のパターンと同じ ぐらい良いですが、こちらはより柔軟性があります。

Log4jパッケージは ユーザからのフィードバックのおかげで絶えず改善されています。 そしてコードはコミュニティで著者によって貢献されています。

ドキュメントの日本語訳
翻訳規則と分担
その他の情報

Copyright © 1999-2004, The Ja-Jakarta Project