「log4jの基本設定」の版間の差分

提供:Software Development Memo
ナビゲーションに移動 検索に移動
19行目: 19行目:


== log4j.xml ==
== log4j.xml ==
<?xml version="1.0" encoding="UTF-8" ?>
<source lang="xml">
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<?xml version="1.0" encoding="UTF-8" ?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!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" />
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="threshold" value="TRACE" />
<param name="ConversionPattern" value="%d [%p] %m%n" />
<layout class="org.apache.log4j.PatternLayout">
</layout>
<param name="ConversionPattern" value="%d [%p] %m%n" />
</appender>
</layout>
</appender>
<appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender">
 
<!-- ログのファイル名 -->
<appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="app.log" />
<!-- ログのファイル名 -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="file" value="app.log" />
<param name="threshold" value="TRACE" />
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="append" value="true" />
<param name="threshold" value="TRACE" />
<layout class="org.apache.log4j.PatternLayout">
<param name="append" value="true" />
<param name="ConversionPattern" value="%d [%p] %m%n" />
<layout class="org.apache.log4j.PatternLayout">
</layout>
<param name="ConversionPattern" value="%d [%p] %m%n" />
</appender>
</layout>
</appender>
<logger name="log.file">
 
<level value="TRACE" />
<logger name="log.file">
<appender-ref ref="fileAppender" />
<level value="TRACE" />
</logger>
<appender-ref ref="fileAppender" />
</logger>
<root>
 
<priority value="TRACE" />
<root>
<appender-ref ref="consoleAppender" />
<priority value="TRACE" />
</root>
<appender-ref ref="consoleAppender" />
</root>
</log4j:configuration>
 
</log4j:configuration>
</source>


== Javaソースコード ==
== Javaソースコード ==


private void output() {
<source lang="java">
Logger logger = Logger.getLogger("log.file");
private void output() {
DOMConfigurator.configure("log4j.xml");
Logger logger = Logger.getLogger("log.file");
DOMConfigurator.configure("log4j.xml");
logger.trace("test trace log");
 
logger.debug("test debug log");
logger.trace("test trace log");
logger.info("test info log");
logger.debug("test debug log");
logger.warn("test warn log");
logger.info("test info log");
logger.error("test error log");
logger.warn("test warn log");
logger.fatal("test fatal log");
logger.error("test error log");
}
logger.fatal("test fatal log");
}
</source>


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

2010年2月11日 (木) 12:15時点における版


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
    • ページ作成