naobe @ ウィキ
Log4J
最終更新:
Bot(ページ名リンク)
-
view
OpenSourceに戻る
Log4j.xmlの設定
1.3より前
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <!--テキストにログを出力するConsoleAppenderをSTDOUTとして定義 --> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <!-- 優先順位閾値 --> <param name="threshold" value="WARN" /> <!-- ログの出力形式を指定 --> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%t] (%F:%L) - %m%n" /> </layout> </appender> <!--決められた期間でログを別ファイルに切り替えて書き込む DailyRollingFileAppenderをDAILYとして定義 --> <appender name="DAILY" class="org.apache.log4j.DailyRollingFileAppender"> <!-- ログのファイル名 --> <param name="file" value="daily-log" /> <!-- 優先順位閾値 カテゴリでdebugを指定していても、info以上のみログ出力する --> <param name="threshold" value="INFO" /> <!-- 日付が変わる瞬間daily-log-2002-06-23のような形式で 現在のログがリネーム --> <!-- すでにログが存在する場合、ファイルにログを追加 --> <param name="append" value="true" /> <!-- ログの出力形式を指定 --> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="'%c', '%p', '%d', '%m'%n" /> </layout> </appender> <!-- カテゴリosbook.log2に対してコンソールにinfo以上のログを出力 --> <category name="osbook.log2"> <priority value="info" /> <appender-ref ref="STDOUT" /> </category> <!-- カテゴリossbook.log2.MyClass2に対してDAILYアペンダにdebug以上のログを出力 --> <category name="osbook.log2.MyClass2"> <priority value="debug" /> <appender-ref ref="DAILY" /> </category> <!-- デフォルトのログ設定 --> <root> <appender-ref ref="STDOUT" /> <appender-ref ref="DAILY" /> </root> </log4j:configuration>
設定ファイルの読み込み
1.3より前
ファイルの基点は、クラスパス
URL url = Loader.getResource("resource/log4j.xml");
DOMConfigurator.configure(url);
優先度
| No. | 優先度 | 説明 |
|---|---|---|
| 1 | fatal | システムがこれ以上動作できない致命的なエラーが発生した場合 |
| 2 | error | 予期せぬ動作などにより、正しく処理できない場合 |
| 3 | warn | なんらかの問題が発生したが、動作には影響がない場合 |
| 4 | info | 設定ファイルを読み込んだときの設定情報、システム開始/停止時の状態出力など |
| 5 | debug | デバッグ情報。例えば、外部モジュールから呼ばれるメソッドの入出力情報など |
| 6 | trace | 詳細なデバッグ情報。モジュール内部の情報、ループの繰り返しで大量に出力される情報など |
レイアウト
| 変数 | 説明 |
| %c | カテゴリ名。%c{n}で表示するカテゴリ階層を指定する。例えば、a.b.cというカテゴリに対して、%c{2}はb.cを出力する |
| %d | 日付。HHを時間、mmを分、ssを秒、SSSをミリ秒としたとき、%d{HH:mm:ss,SSS}, %d{dd MMM yyyy HH:mm:ss,SSS}という形式で指定できる。また%d{ISO8601},%d{ABSOLUTE}という形式でも指定可能 |
| %L | 行番号 |
| %m | メッセージ |
| %M | メソッド名 |
| %n | 改行。ログメッセージの最後に挿入 |
| %p | 優先度(fatal/error/warn/info/debug) |
| %r | アプリケーションの実行開始からの経過時間 |
| %t | スレッド名。マルチスレッドのプログラムの場合、利用を勧める |
