00001 package cast.server;
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 import java.net.ServerSocket;
00023 import java.net.Socket;
00024
00025 import org.apache.log4j.LogManager;
00026 import org.apache.log4j.Logger;
00027 import org.apache.log4j.PropertyConfigurator;
00028 import org.apache.log4j.net.SocketNode;
00029 import org.apache.log4j.xml.DOMConfigurator;
00030
00046 public class LogServer {
00047
00048 static Logger cat = Logger.getLogger(LogServer.class);
00049
00050 static int port;
00051
00052 public static void main(String argv[]) {
00053 if (argv.length == 2) {
00054 init(argv[0], argv[1]);
00055 } else {
00056 usage("Wrong number of arguments.");
00057 }
00058
00059 try {
00060 cat.info("Listening on port " + port);
00061 ServerSocket serverSocket = new ServerSocket(port);
00062 while (true) {
00063 cat.info("Waiting to accept a new client.");
00064 Socket socket = serverSocket.accept();
00065 cat.info("Connected to client at " + socket.getInetAddress());
00066 cat.info("Starting new socket node.");
00067 new Thread(new SocketNode(socket, LogManager
00068 .getLoggerRepository()), "CAST LogServer:" + port)
00069 .start();
00070 }
00071 } catch (Exception e) {
00072 e.printStackTrace();
00073 }
00074 }
00075
00076 static void usage(String msg) {
00077 System.err.println(msg);
00078 System.err.println("Usage: java " + LogServer.class.getName()
00079 + " port configFile");
00080 System.exit(1);
00081 }
00082
00083 static void init(String portStr, String configFile) {
00084 try {
00085 port = Integer.parseInt(portStr);
00086 } catch (java.lang.NumberFormatException e) {
00087 e.printStackTrace();
00088 usage("Could not interpret port number [" + portStr + "].");
00089 }
00090
00091 if (configFile.endsWith(".xml")) {
00092 DOMConfigurator.configure(configFile);
00093 } else {
00094 PropertyConfigurator.configure(configFile);
00095 }
00096 }
00097 }