view src/alice/daemon/AliceDaemon.java @ 63:498d1d2524d3

change getDataSegmentKey
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Thu, 09 Feb 2012 18:53:11 +0900
parents 3155337e754e
children 23d6a775a643
line wrap: on
line source

package alice.daemon;

import java.io.FileWriter;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.nio.channels.ServerSocketChannel;

import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.WriterAppender;

public class AliceDaemon {
	
	private Config conf;
	private AcceptThread acceptThread;
	private Logger log = Logger.getLogger(AliceDaemon.class);
	
	public AliceDaemon(Config conf) {
		this.conf = conf;
		setLogger();
	}
	
	private void setLogger() {
		Logger root = Logger.getRootLogger();
		if (conf.level != null)
			root.setLevel(conf.level);
		if (conf.logFile == null)
			return;
		PatternLayout layout = new PatternLayout();
		layout.setConversionPattern("%d %-5p %c - %m [%t] (%F:%L)%n");
		try {
			FileWriter writer = new FileWriter(conf.logFile);
			WriterAppender writerAppender = new WriterAppender(layout, writer);
			root.removeAllAppenders();
			root.addAppender(writerAppender);
		} catch (IOException e) {
			e.printStackTrace();
		}
		log.info("configurated");
	}
	
	public void listen() {
		try {
			ServerSocketChannel ssChannel = ServerSocketChannel.open();
			ServerSocket ss = ssChannel.socket();
			ss.setReuseAddress(true);
			
			ss.bind(new InetSocketAddress(InetAddress.getLocalHost(), conf.localPort));
			acceptThread = new AcceptThread(ss, "ACCEPT" + conf.localPort);
			acceptThread.start();
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
}