カテゴリには、rootカテゴリと、ユーザーが定義するカテゴリ名の2種類あります。
ユーザーが定義するカテゴリ名は、通常はパッケージ名やクラス名でドットで区切られた階層的 な名前付けを行います。
例えば、カテゴリ名”com.abc”は、カテゴリ名”com.abc.zzz”に対して親となり、全てのカテゴリの親はrootカテゴリになります。
それぞれのカテゴリは、ログレベルやアペンダを割り当てられ、親カテゴリのログレベルやアペンダを子カテゴリは継承できます。
●log4j.propertiesの場合
log4j.rootCategory= ログレベル,アペンダ名1,アペンダ名2,・・・
log4j.category.カテゴリ名 = ログレベル,アペンダ名1,アペンダ名2,・・・
ルートカテゴリとカテゴリ「sample.pg.SampleApp」の設定例
log4j.rootCategory=INFO, A1, A2 log4j.category.sample.pg.SampleApp=DEBUG, A1, A2 |
rootカテゴリの設定は、システム全体で適用されます
カテゴリ定義を、「log4j.category.sample.pg」と定義すれば、「sample.pg.SampleApp」に対しても適用されます。
ログ出力時の カテゴリ名の指定は、下記メソッドの引数にて指定されます。
commons-logging : Log log = LogFactory.getLog(カテゴリ名);
log4j : Logger log = Logger.getLogger( カテゴリ名 ); |
●log4j.xmlの場合
<root>タグ内の<priority>タグのvalue属性で、ログレベルを指定する。
<root>タグ内の<appender-ref>タグのref属性で、アペンダ名を指定する。
<category>タグのname属性で、カテゴリ名を指定する。
<category>タグ内の<priority>タグのvalue属性で、ログレベルを指定する。
<category>タグ内の<appender-ref>タグのref属性で、アペンダ名を指定する。
ルートカテゴリとカテゴリ「sample.pg」の設定例
<category name=”sample.pg.Logging”> <priority value=”debug” /> <appender-ref ref=”A3″ /> </category><root> <priority value =”info” /> <appender-ref ref=”A1″ /> <appender-ref ref=”A2″ /> </root> |