解答例 - 実習課題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