解答例 - 実習課題1 - 4.APPENDER2
(実習課題1)
全てのレベルのログイベントを故意に発生させ、WARN以上ログイベントが発生した場合のみ、ログとして出力されるプログラムを作成しなさい。
- ログの出力先は SMTPAppender を使用すること。
- ログのフォーマットは、3章の実習課題1に示す PatternLayout を使用すること。
- debug 〜 fatal までのイベントを発生させて、届くメールを確認すること。
解答例
/** * EvaluatorExample.java * TECHSCORE Java Jakarta Log4J 4章 実習課題1 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ package com.techscore.log4j.chapter4.exercise1; import org.apache.log4j.Priority; import org.apache.log4j.spi.LoggingEvent; import org.apache.log4j.spi.TriggeringEventEvaluator; public class EvaluatorExample implements TriggeringEventEvaluator { public boolean isTriggeringEvent(LoggingEvent event) { //WARN以上のレベルでログ出力を行うように設定する return (event.getLevel().isGreaterOrEqual(Priority.WARN)); } }
/** * Log4jExample.java * TECHSCORE Java Jakarta Log4J 4章 実習課題1 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ package com.techscore.log4j.chapter4.exercise1; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class Log4jExample { public static void main(String[] args) { if (args.length == 0) { System.out.println("引数に設定ファイルを指定してください"); return; } //インスタンスの生成 Logger logger = (Logger)Logger.getInstance("smtpLogger"); PropertyConfigurator.configure(args[0]); logger.debug("debug!!!"); logger.info("info!!!"); logger.warn("warn!!!"); logger.error("error!!!"); logger.fatal("fatal!!!"); } }
/** * SMTPAppender_WARN.java * TECHSCORE Java Jakarta Log4J 4章 実習課題1 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ package com.techscore.log4j.chapter4.exercise1; import org.apache.log4j.net.SMTPAppender; public class SMTPAppender_WARN extends SMTPAppender { public SMTPAppender_WARN() { super(new EvaluatorExample()); } }
▼以下は、設定ファイルです。
#Log4J 4章 実習課題1 #rootLogger log4j.rootLogger=DEBUG # smtpLogger log4j.logger.smtpLogger=DEBUG,smtpAppender # APPENDER smtpAppender log4j.appender.smtpAppender=com.techscore.log4j.chapter4.exercise1.SMTPAppender_WARN log4j.appender.smtpAppender.BufferSize=1 [email protected] [email protected] log4j.appender.smtpAppender.Subject=smtpAppender_log log4j.appender.smtpAppender.SMTPHost=mail.techscore.4dd log4j.appender.smtpAppender.layout=org.apache.log4j.PatternLayout log4j.appender.smtpAppender.layout.ConversionPattern=%d [%t] %-5p %c - %m%n