目次へ

解答例 - 実習課題2 - 4.APPENDER2

(実習課題2)

全てのレベルのログイベントを故意に発生させ、WARN以上ログイベントが発生した場合のみ、ログとして出力されるプログラムを作成しなさい。

  • WARN 以上のログイベントが発生したときは、リモートの syslogd にメッセージを渡すこと。
  • ERROR 以上のログイベントが発生したときは、メールにログを出力するようにすること。
  • syslog.conf の記述を変えてどのようにログが出力されるか確認すること。
  • SyslogAppender で使用する Layout は3章の実習課題1に示す PatternLayout を使用すること。

解答例

/**
 * Log4jExample.java
 * TECHSCORE Java Jakarta Log4J 4章 実習課題2 
 *
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */

package com.techscore.log4j.chapter4.exercise2;

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("SyslogLogger");
        PropertyConfigurator.configure(args[0]);

        logger.debug("debug!!");
        logger.info("info!!");
        logger.warn("warn!!");
        logger.error("error!!");
        logger.fatal("fatal!!");
    }
}

▼以下は、設定ファイルです。

#Log4J 4章 実習課題2

#rootLogger
log4j.rootLogger=DEBUG

# smtpLogger
log4j.logger.smtpLogger=ERROR,smtpAppender

# syslogLogger
log4j.logger.syslogLogger=WARN,syslogAppender

#  APPENDER smtpAppender
log4j.appender.smtpAppender=org.apache.log4j.net.SMTPAppender
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

#  APPENDER syslogAppender
log4j.appender.syslogAppender=org.apache.log4j.net.SyslogAppender
log4j.appender.syslogAppender.SyslogHost=host.techscore.4dd
log4j.appender.syslogAppender.Facility=local0

log4j.appender.syslogAppender.Layout=org.apache.log4j.PatternLayout
log4j.appender.syslogAppender.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

▼/etc/syslog.confに以下を追記してください。

#[selecter field][tab| ][action field]
#[facility].[priority][tab| ][log_file_path]
#/etc/syslog.confに下を追記
local0.* /home/username/Log4J/log/syslog

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp