log 4 jコード端のappendersとlayoutsの意味
log 4 jは主に3つのコンポーネントを含み、それぞれLoggers、appenders、layoutsに対応する.彼らは互いに協力して、プログラムが異なる階層に基づいてログを記録し、実行時にこれらのログの出力フォーマットを制御し、これらのログを対応する場所に記録することができるようにします.
log 4 jでは、1つのLoggerが複数の方法でログを出力することができる.各フォーマットにはappenderが表示され、具体的な出力方法はコンソール、ファイル、GUIコンポーネント、リモートsocketストリーム、JMSなどがあります.1つのloggerは、複数のappenderオブジェクトにマッピングできます.フレームワークはappender機能を実現する際にも継承属性を実現する.すなわち、ネーミング階層では、サブノードは、祖先ノードのappenderに対応する出力方式を継承することができる.もちろん、サブノードはこの属性を継承しないことを選択することもでき、対応するサブノードloggerオブジェクトはaddAdditivity関数を呼び出して祖先ノードが残したappender機能を取り消すことができる.次の図に示します.
ログ・オブジェクト名
独自に追加したappenders機能
オーバーラップフラグ
出力ログ方式
コメント
root
A1
not applicable
A1
The root logger is anonymous but can be accessed with the Logger.getRootLogger() method. There is no default appender attached to root.
x
A-x1, A-x2
true
A1, A-x1, A-x2
Appenders of "x"and root.
x.y
none
true
A1, A-x1, A-x2
Appenders of "x"and root.
x.y.z
A-xyz1
true
A1, A-x1, A-x2, A-xyz1
Appenders in "x.y.z", "x"and root.
security
A-sec
false
A-sec
No appender accumulation since the additivity flag is set to
security.access
none
true
A-sec
Only appenders of "security"because the additivity flag in "security"is set to
ほとんどの時間、ログ情報の出力を実現する際に、ログ出力フォーマットの設定を伴う.これはlayoutsをappenderに関連付ける必要があります.layoutsの役割は、ユーザーのニーズに応じて対応する出力情報をフォーマットすることです.標準log 4 jバージョンでPatternLayoutを使って出力フォーマットを設定し、Cのprintfの味がします.例えば、PatternLayoutで「%r[%t]%-5 p%c-%m%n」パラメータを使用すると、以下の内容が出力されます:176[main]INFO org.foo.Bar - Located nearest gas station
ここで%rは、このシステムを使用するのにかかるミリ秒時間に対応する
%t:このlogリクエストに対応するスレッドを使用
%-5 p:log文に対応するレベル
%c:対応する対応する使用対象
%m%n:最終ユーザ自身が定義した出力内容.
log 4 jでは、1つのLoggerが複数の方法でログを出力することができる.各フォーマットにはappenderが表示され、具体的な出力方法はコンソール、ファイル、GUIコンポーネント、リモートsocketストリーム、JMSなどがあります.1つのloggerは、複数のappenderオブジェクトにマッピングできます.フレームワークはappender機能を実現する際にも継承属性を実現する.すなわち、ネーミング階層では、サブノードは、祖先ノードのappenderに対応する出力方式を継承することができる.もちろん、サブノードはこの属性を継承しないことを選択することもでき、対応するサブノードloggerオブジェクトはaddAdditivity関数を呼び出して祖先ノードが残したappender機能を取り消すことができる.次の図に示します.
ログ・オブジェクト名
独自に追加したappenders機能
オーバーラップフラグ
出力ログ方式
コメント
root
A1
not applicable
A1
The root logger is anonymous but can be accessed with the Logger.getRootLogger() method. There is no default appender attached to root.
x
A-x1, A-x2
true
A1, A-x1, A-x2
Appenders of "x"and root.
x.y
none
true
A1, A-x1, A-x2
Appenders of "x"and root.
x.y.z
A-xyz1
true
A1, A-x1, A-x2, A-xyz1
Appenders in "x.y.z", "x"and root.
security
A-sec
false
A-sec
No appender accumulation since the additivity flag is set to
false
. security.access
none
true
A-sec
Only appenders of "security"because the additivity flag in "security"is set to
false
. ほとんどの時間、ログ情報の出力を実現する際に、ログ出力フォーマットの設定を伴う.これはlayoutsをappenderに関連付ける必要があります.layoutsの役割は、ユーザーのニーズに応じて対応する出力情報をフォーマットすることです.標準log 4 jバージョンでPatternLayoutを使って出力フォーマットを設定し、Cのprintfの味がします.例えば、PatternLayoutで「%r[%t]%-5 p%c-%m%n」パラメータを使用すると、以下の内容が出力されます:176[main]INFO org.foo.Bar - Located nearest gas station
ここで%rは、このシステムを使用するのにかかるミリ秒時間に対応する
%t:このlogリクエストに対応するスレッドを使用
%-5 p:log文に対応するレベル
%c:対応する対応する使用対象
%m%n:最終ユーザ自身が定義した出力内容.