解答例 - 実習課題1 - 2.設定ファイルの利用
(実習課題1)
ログ出力レベルが DEBUG と FATAL の Category オブジェクトを生成し、ログを出力するプログラムを作成しなさい。
- Category オブジェクトのログ出力レベルは設定ファイルに記述すること。
- Appender と Layout も設定ファイルに記述すること。
- Appender は ConsoleAppender を使用すること。
- Layout は PatternLayout を使用すること。
- ログの出力は、それぞれの Category オブジェクトについて、 全てのログイベントを発生させること。
- 出力したログが、どちらの Category オブジェクトによるものかわかるようにしておくこと。
解答例
/**
* Log4jExample.java
* TECHSCORE Java Jakarta Log4J 2章 実習課題1
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
package com.techscore.log4j.chapter2.exercise1;
import java.io.IOException;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Log4jExample {
public static void main(String[] args) throws IOException {
if (args.length == 0) {
System.out.println("引数に設定ファイルを指定してください");
return;
}
//インスタンスの生成
Logger loggerDebug = (Logger)Logger.getInstance("debugLogger");
Logger loggerFatal = (Logger)Logger.getInstance("fatalLogger");
PropertyConfigurator.configure(args[0]);
loggerDebug.debug("(DEBUG)debug!!!");
loggerDebug.info("(DEBUG)info!!!");
loggerDebug.warn("(DEBUG)warn!!!");
loggerDebug.error("(DEBUG)error!!!");
loggerDebug.fatal("(DEBUG)fatal!!!");
loggerFatal.debug("(FATAL)debug!!!");
loggerFatal.info("(FATAL)info!!!");
loggerFatal.warn("(FATAL)warn!!!");
loggerFatal.error("(FATAL)error!!!");
loggerFatal.fatal("(FATAL)fatal!!!");
}
}
▼以下は、設定ファイルです。
#Log4J 2章 実習課題1 #debugLogger log4j.logger.debugLogger=DEBUG,debugAppender #fatalLogger log4j.logger.fatalLogger=FATAL,fatalAppender # APPENDER log4j.appender.debugAppender=org.apache.log4j.ConsoleAppender log4j.appender.fatalAppender=org.apache.log4j.ConsoleAppender # PatternLayout log4j.appender.debugAppender.layout=org.apache.log4j.PatternLayout log4j.appender.debugAppender.layout.ConversionPattern=%-4r [%t] %-5p %c - %m%n log4j.appender.fatalAppender.layout=org.apache.log4j.PatternLayout log4j.appender.fatalAppender.layout.ConversionPattern=%-4r [%t] %-5p %c - %m%n

