解答例 - 実習課題2 - 5.APPENDER3
(実習課題2)
全てのレベルのログイベントを故意に発生させ、WARN 以上ログイベントが発生した場合のみ、ログとして出力されるプログラムを作成しなさい。
- Windows の NT イベントログシステムにログを渡すこと。
- リモートの WindowsNT(2000)マシンにログを渡すこと。
- 出力 Layout は 3 章の実習課題 1 に示す PatternLayout を使用すること。
解答例
/**
* Log4jExample.java
* TECHSCORE Java Jakarta Log4J 5章 実習課題2
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
package com.techscore.log4j.chapter5.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("ntEventLogger");
PropertyConfigurator.configure(args[0]);
logger.debug("debug!!");
logger.info("info!!");
logger.warn("warn!!");
logger.error("error!!");
logger.fatal("fatal!!");
}
}
/**
* NTEventLogAppener_SERVER.java
* TECHSCORE Java Jakarta Log4J 5章 実習課題2
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
package com.techscore.log4j.chapter5.exercise2;
import org.apache.log4j.nt.NTEventLogAppender;
public class NTEventLogAppener_SERVER extends NTEventLogAppender {
public NTEventLogAppener_SERVER() {
//リモートのサーバ名を設定
super("remote_server.techscore.4dd", "Source");
}
}
/**
* RemoteLoggerExample.java
* TECHSCORE Java Jakarta Log4J 5章 実習課題2
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
package com.techscore.log4j.chapter5.exercise2;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.nt.NTEventLogAppender;
public class RemoteLoggerExample {
public static void main(String[] args) {
Logger logger = (Logger)Logger.getInstance("ntEventLogger");
PatternLayout layout = new PatternLayout();
layout.setConversionPattern("%d [%t] %-5p %c - %m%n");
NTEventLogAppender ntEventAppender =
new NTEventLogAppender("server.techscore.4dd", "Source", layout);
logger.addAppender(ntEventAppender);
logger.setLevel(Level.WARN);
logger.debug("debug!!");
logger.info("info!!");
logger.warn("warn!!");
logger.error("error!!");
logger.fatal("fatal!!");
}
}
▼以下は、設定ファイルです。
#Log4J 5章 実習課題2 log4j.logger.ntEventLogger=WARN,ntEventAppender log4j.appender.ntEventAppender=com.techscore.log4j.chapter5.exercise2.NTEventLogAppender_SERVER log4j.appender.ntEventAppender.Source=Source log4j.appender.ntEventAppender.layout=org.apache.log4j.PatternLayout log4j.appender.ntEventAppender.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

