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 スレッド名。マルチスレッドのプログラムの場合、利用を勧める
ウィキ募集バナー