log4j-アーキテクチャ

log4j APIは、各レイヤーがさまざまなタスクを実行するためのさまざまなオブジェクトを提供する階層化アーキテクチャに従います。この階層化アーキテクチャにより、設計は柔軟になり、将来的に簡単に拡張できます。

log4jフレームワークで使用できるオブジェクトには2つのタイプがあります。

  • Core Objects:これらはフレームワークの必須オブジェクトです。フレームワークを使用する必要があります。

  • Support Objects:これらはフレームワークのオプションのオブジェクトです。これらは、追加の重要なタスクを実行するためのコアオブジェクトをサポートします。

コアオブジェクト

コアオブジェクトには、次のタイプのオブジェクトが含まれます-

ロガーオブジェクト

最上位層は、Loggerオブジェクトを提供するLoggerです。Loggerオブジェクトは、ログ情報のキャプチャを担当し、名前空間階層に格納されます。

レイアウトオブジェクト

レイアウトレイヤーは、ログ情報をさまざまなスタイルでフォーマットするために使用されるオブジェクトを提供します。ロギング情報を公開する前に、アペンダーオブジェクトをサポートします。

レイアウトオブジェクトは、人間が判読可能で再利用可能な方法でログ情報を公開する上で重要な役割を果たします。

アペンダーオブジェクト

これは、Appenderオブジェクトを提供する下位レベルのレイヤーです。Appenderオブジェクトは、データベース、ファイル、コンソール、UNIXSyslogなどのさまざまな優先宛先にログ情報を公開する役割を果たします。

次の仮想図は、log4Jフレームワークのコンポーネントを示しています。

サポートオブジェクト

log4jフレームワークには、ロギングフレームワークで重要な役割を果たす他の重要なオブジェクトがあります。

レベルオブジェクト

Levelオブジェクトは、ログ情報の粒度と優先度を定義します。API内で定義されているロギングには、OFF、DEBUG、INFO、ERROR、WARN、FATAL、およびALLの7つのレベルがあります。

フィルタオブジェクト

Filterオブジェクトは、ログ情報を分析し、その情報をログに記録するかどうかをさらに決定するために使用されます。

Appenderオブジェクトには、複数のFilterオブジェクトを関連付けることができます。ロギング情報が特定のAppenderオブジェクトに渡される場合、そのAppenderに関連付けられているすべてのFilterオブジェクトは、添付された宛先に公開する前に、ロギング情報を承認する必要があります。

ObjectRenderer

ObjectRendererオブジェクトは、ロギングフレームワークに渡されるさまざまなオブジェクトの文字列表現を提供することに特化しています。このオブジェクトは、最終的なログ情報を準備するためにLayoutオブジェクトによって使用されます。

LogManager

LogManagerオブジェクトは、ロギングフレームワークを管理します。システム全体の構成ファイルまたは構成クラスから初期構成パラメーターを読み取る役割を果たします。