目次へ

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


↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp