log4jの基本設定
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
- ページ作成