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