SyslogD.java 3.01 KB
package com.sitech.ismp.ice.syslogd;

import java.awt.*;
import java.util.*;
import java.applet.*;

import com.sitech.ismp.ice.util.UserProperties;

public class SyslogD {
	public static final String RCS_ID = "$Id: SyslogD.java,v 1.1.1.1 1998/02/22 05:47:54 time Exp $";
	public static final String RCS_REV = "$Revision: 1.1.1.1 $";
	public static final String RCS_NAME = "$Name:  $";

	static public final String VERSION_STR = "2.2";

	static private Frame frame;
	static private Applet applet;
	static private SyslogServer server;
	static private RepeatThread repeat;

	static public void main(String argv[]) {
		boolean isDaemon = false;
		String configPath = null;
		String prefix = "SyslogD";
		Properties props = new Properties();

		for (int iArg = 0; iArg < argv.length; ++iArg) {
			if (argv[iArg].equals("-daemon")) {
				isDaemon = true;
			} else if (argv[iArg].equals("-config") && (iArg + 1) < argv.length) {
				configPath = argv[++iArg];
			} else if (argv[iArg].equals("-prefix") && (iArg + 1) < argv.length) {
				prefix = argv[++iArg];
			} else if (argv[iArg].equals("-propfile")
					&& (iArg + 1) < argv.length) {
				props.put("SyslogD.global.localPropertyFile", argv[++iArg]);
			} else if (argv[iArg].equals("-?") || argv[iArg].equals("-usage")) {
				SyslogD.printUsage();
				return;
			} else {
				System.err.println("ERROR unknown option '" + argv[iArg] + "'");
				SyslogD.printUsage();
				return;
			}
		}

		TimeZone.setDefault(TimeZone.getDefault());

		UserProperties.setPropertyPrefix("SyslogD.");

		UserProperties.loadProperties("com.sitech.ismp.ice.syslogd", props);

		SyslogConfig config = new SyslogConfig();

		if (configPath != null) {
			config.setConfigPathname(configPath);
		}

		config.loadConfiguration();

		SyslogD.server = new SyslogServer();

		SyslogD.server.setConfiguration(config);

		SyslogD.repeat = new RepeatThread(config.getConfigEntries());

		if (!isDaemon) {
			SyslogD.applet = new SyslogDApplet(SyslogD.server);

			int x = UserProperties.getProperty("mainWindow.x", 20);
			int y = UserProperties.getProperty("mainWindow.y", 20);
			int w = UserProperties.getProperty("mainWindow.width", -1);
			int h = UserProperties.getProperty("mainWindow.height", -1);
			String title = UserProperties.getProperty("mainWindow.title",
					"SyslogD");

			SyslogD.frame = new SyslogDFrame(title, SyslogD.applet, x, y, w, h);
		}

		SyslogD.server.start();

		SyslogD.repeat.start();

		if (false) {
			Runtime rt = Runtime.getRuntime();
			System.err.println("TOTAL: " + rt.totalMemory() + "\n" + "FREE: "
					+ rt.freeMemory());
		}
	}

	public static void printUsage() {
		System.err.println("usage: Syslogd [options...]");
		System.err.println("options:");
		System.err.println("   -daemon             -- "
				+ "run as a daemon (no windows)");
		System.err.println("   -prefix prefix      -- "
				+ "sets property prefix");
		System.err.println("   -config filename    -- "
				+ "sets syslog configuration file name");
		System.err.println("   -propfile filename  -- "
				+ "sets user property file name");
	}

}