view src/alice/daemon/AliceDaemon.java @ 283:b90d03c6cb00

Fix spell
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Fri, 18 Oct 2013 02:43:21 +0900
parents d50cddf64396
children
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("configured");
	}
	
	public void listen() {
		try {
			ServerSocketChannel ssChannel = ServerSocketChannel.open();
			ServerSocket ss = ssChannel.socket();
			ss.setReuseAddress(true);
			
            //InetSocketAddress a = new InetSocketAddress("::", conf.localPort);
            InetSocketAddress a = new InetSocketAddress(InetAddress.getLocalHost(), conf.localPort);
            //System.out.println(a);
            ss.bind(a);
			acceptThread = new AcceptThread(ss, "ACCEPT" + conf.localPort);
			acceptThread.start();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
}