log4jのデフォルトのプロパティ
Log4j.properties Of Default Mode Include.
#Application Root Logger. Include The Range Of All Modules. log4j.rootLogger=ERROR,stdout #The Range Of This Application. Namespace=com.mygroup log4j.logger.com.mygroup=INFO #The Range Of Sub Web System Of this Application. log4j.logger.com.mygroup.web.metrics=INFO #Log will be out to Console, with PatternLayout, without File.log log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n
Log4j.properties Of FileAppender with PatternLayout.
# initialize root logger with level ERROR for stdout and fout log4j.rootLogger=ERROR,stdout,fout # set the log level for these components log4j.logger.com.mygroup=INFO
log4j.logger.com.mygroup.web.metrics=INFO
# add a ConsoleAppender to the logger stdout to write to the console log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # use a simple message format log4j.appender.stdout.layout.ConversionPattern=%m%n # add a FileAppender to the logger fout log4j.appender.fout=org.apache.log4j.FileAppender # create a log file log4j.appender.fout.File=ThisApplication.log log4j.appender.fout.layout=org.apache.log4j.PatternLayout # use a more detailed message pattern log4j.appender.fout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n
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} みたいに書いても良い。 |
%l | 以下3つはいわゆる「LocationInfo」と呼ばれる、「ソース上どこでログイベントが発生したか?」についてのレイアウト指定である。これらの情報は有益だが、通信系Appenderの場合は「いらない情報をわざわざネット越しに送る」ことになるとか、スタックフレームを参照するのでJVMによってはうまく動かないケースがないわけではないとか、そもそもスピードが遅いとか、いろいろと問題を抱えているログ要素である。だから、これらは独立して「出す/出さない」の設定が可能なことが多い。で、この「%l」は3つの「LocationInfo」をまとめて出すオプション指定である。たとえば、「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で追加。ログイベントのプロパティ。使いかたは後述する。 |
没有评论:
发表评论