log4j 1.2.14のPatternLayout

スポンサーリンク

PatternLayoutを利用すると出力する文字をC言語のprintf関数のように指定することができる。例えば

<param name="ConversionPattern" value="%C{1}" />

と指定すると

TestClass

といういうようにクラス名が表示されるわけだ。

スポンサーリンク

変換文字

変換文字内容メモ
cカテゴリー。%c{1}とすることで現在のカテゴリのみを表示することができる
Cクラス名。%C{1}とすることでクラス名だけを表示することができる。これを指定しないとパッケージ全てが表示されるおもーい
d日付を表示する。%d{HH:mm:ss,SSS}などSimpleDateFormatの時刻パターン文字列と同様な文法が指定できる
Fファイル名。ログ出力が発生したファイル名を指定できる。
l位置情報。%Lと同じ?おもーい
L行番号おもーい
m引数であるメッセージを表示する
Mメソッド名おもーい
nこのプラットフォームの改行コード。行の最後に書くべし
pDebug、Warnなどのログレベル
rログが出力されるまでの時間
tスレッド名。mainとか
xスレッド名。ネスト化診断コンテキスト
%%%でパーセントが出力できる

フォーマット 

%20cカテゴリー名が20文字に満たなければ左側は空白が詰められます。
%-20cカテゴリー名が20文字に満たなければ、右側に空白がパディングされる
%.30cカテゴリー名が30文字より長ければ、先頭から削除される
%20.30cカテゴリー名が20文字より短ければ左に空白がパディングされる。しかし、カテゴリー名が30文字より長ければ、先頭から削除される。
%-20.30cカテゴリー名が20文字より短ければ右側に空白がパディングされる。しかし、カテゴリー名が30文字より長ければ先頭から削除される。