解答例 - 実習課題2 - 8.設定ファイルの利用2
(実習課題2)
全てのレベルのログイベントを故意に発生させ、WARN 以上ログイベントが発生した場合のみ、ログとして出力されるプログラムを作成しなさい
- DOMConfigurator を使用しすること。
- WARN 以上のログイベントが発生したときは、リモートの syslogd にメッセージを渡すこと。
- ERROR 以上のログイベントが発生したときは、メールにログを出力するようにすること。
解答例
/**
* Log4jExample.java
* TECHSCORE Java Jakarta Log4J 8章 実習課題2
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
package com.techscore.log4j.chapter8.exercise2;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
public class Log4jExample {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("引数に設定ファイルを指定してください");
return;
}
//インスタンスの生成
Logger logger = (Logger)Logger.getInstance("DomConfiguratorLogger");
DOMConfigurator.configure(args[0]);
logger.debug("debug!!");
logger.info("info!!");
logger.warn("warn!!");
logger.error("error!!");
logger.fatal("fatal!!");
}
}
▼以下は、設定ファイル(xmlファイル)です。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="syslogAppender" class="org.apache.log4j.net.syslogAppender">
<param name="SyslogHost" value="techscore.4dd" />
<param name="Facility" value="local0" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="smtpAppender" class="org.apache.log4j.net.smtpAppender">
<param name="From" value="[email protected]" />
<param name="To" value="[email protected]" />
<param name="Subject" value="Kadai82 logger message" />
<param name="SMTPHost" value="mail.aoi" />
<param name="BufferSize" value="1" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name="DomConfiguratorLogger">
<!--smtpAppender will trigger on events with priority ERROR or higher. -->
<level value="WARN" />
<appender-ref ref="syslogAppender" />
<appender-ref ref="smtpAppender" />
</logger>
</log4j:configuration>

