log4jの基本設定

提供: Software Development Memo
移動先: 案内検索


Javaのロギングフレームワークであるlog4jを使用して、ログ出力を行う手順を記述します。

ログ出力要件

ログの出力要件を以下とします。もちろん、log4jはここに記述した要件以外の処理も行うことができます。

  • 標準出力とファイルに出力する
  • ログファイル名は「app.log」
  • ログファイルは一日毎にローテートする
  • 出力形式は「日時 [重要度] メッセージ」とする
  • log4jの定義はXMLファイルで行う

環境

  • Java 1.5.0
  • Windows 7 32bit
  • log4j version 1-2-15

log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
		<param name="threshold" value="TRACE" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d [%p] %m%n" />
		</layout>
	</appender>

	<appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender">
		<!-- ログのファイル名 -->
		<param name="file" value="app.log" />
		 <param name="DatePattern" value="'.'yyyy-MM-dd"/>
		<param name="threshold" value="TRACE" />
		<param name="append" value="true" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d [%p] %m%n" />
		</layout>
	</appender>

	<logger name="log.file">
		<level value="TRACE" />
		<appender-ref ref="fileAppender" />
	</logger>

	<root>
		<priority value="TRACE" />
		<appender-ref ref="consoleAppender" />
	</root>

</log4j:configuration>

Javaソースコード

private void output() {
	Logger logger = Logger.getLogger("log.file");
	DOMConfigurator.configure("log4j.xml");

	logger.trace("test trace log");
	logger.debug("test debug log");
	logger.info("test info log");
	logger.warn("test warn log");
	logger.error("test error log");
	logger.fatal("test fatal log");
}

出力結果(ファイル・標準出力両方)

2010-02-11 20:17:09,573 [TRACE] test trace log
2010-02-11 20:17:09,573 [DEBUG] test debug log
2010-02-11 20:17:09,573 [INFO] test info log
2010-02-11 20:17:09,573 [WARN] test warn log
2010-02-11 20:17:09,573 [ERROR] test error log
2010-02-11 20:17:09,573 [FATAL] test fatal log

参考

更新履歴

  • 2010/02/11
    • ページ作成