org.apache.log4j.PatternLayout

org.apache.log4j.PatternLayout

■%c
カテゴリー名。
これは %c{1} という風に書けて、%c{1} だと一番「下の」
レベル、jp.or.nurs.sug.log4j.test.child.TestChild なら、「TestChild」のみになる。

■%C
ログを生成したクラス名(≠カテゴリー名)。
これも %C{2} という風に書けて、%C{2} だと一番「下の」レベルから2つ上にたどる。
jp.or.nurs.sug.log4j.test.child.TestChild クラスなら、「child.TestChild」になるわけだ。

■%d
日付。
これは %d{yyyy-MMM-dd HH:mm:ss,SSS} みたいに細かく書けるし、
TTCCLayout で使ったシンボルを使った%d{ISO8601}や%d{ABSOLUTE}もOK。

■%l
「LocationInfo」。
「ソース上どこでログイベントが発生したか?」のレイアウト指定。
「%F」、「%L」、「%M」の3つの「LocationInfo」をまとめて出す指定。
ex
「jp.or.nurs.sug.log4j.test.TestLog4j.main(TestLog4j.java:18)」のような出力になる。

■%F
ログを生成したソースファイル名。
遅いぞ!っていう警告。

■%L
ログを生成した箇所のソースの行番号。
遅いぞ!っていう警告。

■%M
ログを生成したメソッドの名前。
遅いぞ!っていう警告。

■%m
ログメッセージ。

■%x
NDC の値。

■%X{key}
その MDC(1.2)、プロパティ(1.3) に保存された key の値。

■%n
改行。
ログメッセージの最後に挿入
※\nじゃないわけである。

■%p
ログレベルの優先度(FATALとかINFOとか)。

■%r
アプリケーションが開始してからの通算時間(ミリ秒)。

■%t
ログを生成したスレッド名。
マルチスレッドのプログラムの場合に有効的。

■%throwable{short}
1.3で追加。レイアウト要素というよりも一種のスイッチ。
例外をログメソッドに渡して Log4j を呼ぶと、デフォルトでは例外スタックトレースをすべて出力することになる。
→鬱陶しいケースも…。
→「■%throwable{short}」という表現をログフォーマットの末尾につける。
 →例外スタックトレースの最初の行だけを表示することになる。

■%properties{プロパティ名}
1.3で追加。ログイベントのプロパティ。


ref:
http://www.nurs.or.jp/~sug/soft/log4j/log4j2.htm
http://www.atmarkit.co.jp/fjava/rensai2/jakarta09/jakarta09.html

simple sample of log4j

==================================================
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1} - %m%n

### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=mylog.log
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %5p %c{1} - %m%n

log4j.rootLogger=debug, stdout, file
==================================================

*「ルートロガー」に対して、ConsoleAppender(名前は「stdout」)と、FileAppender(名前は「file」)を与えている。
 →標準出力とファイルにログ出力する設定。

※ルートロガー:Log4Jは、階層カテゴリーロガーで、その一番親元となるデフォルトのロガーのこと。
 →ルートロガーの設定は、以降のカテゴリーに対しても、デフォルトで継承される。

↓フォーマットの形式
==================================================
# Appender の定義
log4j.appender.名前=Appenderの完全修飾名
log4j.appender.名前.オプション=値
log4j.appender.名前.layout=レイアウトクラスの完全修飾名
log4j.appender.名前.layout.オプション=レイアウトのオプション

#カテゴリーの定義
log4j.logger.カテゴリー=ログレベル,適用するAppenderの名前[, Appender名]

#ルートロガーの定義
log4j.rootLogger=ログレベル,適用するAppenderの名前[, Appender名]
==================================================

ref:
http://www.nurs.or.jp/~sug/soft/log4j/log4j2.htm

log level

■fatal
想定外の状況で、アプリケーションの継続が不可能な場合。
シビアなやつ。

■error
サーバ停止や、リクエスト処理での大きいエラーとかが生じた場合。
かなり緊急な対応を要するやつ。

■warn
警告。
問題ではあるが、一応リクエストは完結できる場合。

■info
情報。
実運用の最低ログレベル。
サーバの起動やら、リクエストの受け付け・完了やら。

■debug
デバッグログ。
ログファイルのサイズが爆発する可能性あり。

■trace
一番詳細なログレベル。
大まか過ぎデバッグレベルを解消すべく登場。

ref:
http://www.nurs.or.jp/~sug/soft/log4j/log4j2.htm

Top

HOME

09 | 2008/10 | 11
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

QR

name:
mail:
title:
body:

N/A