public static void Main(string[] args) { DefaultStartup <NetworkNode> defaultStartup = new DefaultStartup <NetworkNode>(); defaultStartup.InitArgumentParse(args); IConfigurationParser <Configuration> configurationParser; if (defaultStartup.ChooseXmlParser()) { configurationParser = new XmlConfigurationParser(defaultStartup.Filename); } else { configurationParser = new MockConfigurationParser(); } Configuration configuration = configurationParser.ParseConfiguration(); defaultStartup.InitLogger(configuration.RouterAlias); IPacketForwarder packetForwarder = new MplsPacketForwarder(); //IPacketForwarder packetForwarder = new MockPacketForwarder(configuration); IPersistentClientPortFactory <EonPacket> clientPortFactory = new PersistentClientPortFactory <EonPacket>(configuration.CableCloudAddress, configuration.CableCloudPort); IManager networkNodeManager = new NetworkNodeManager(configuration, packetForwarder, clientPortFactory); defaultStartup.SetTitle(configuration.RouterAlias); networkNodeManager.Start(); }
public static void Main(string[] args) { string filename = ""; string logs = ""; try { LOG.Trace($"Args: {string.Join(", ", args)}"); if (args[0] == "-c") { filename = args[1]; } if (args[2] == "-l") { logs = args[3]; } else { LOG.Warn("Use '-c <filename> -l <log_filename>' to pass a config file to program and set where logs should be"); } } catch (IndexOutOfRangeException) { LOG.Warn("Use '-c <filename> -l <log_filename>' to pass a config file to program and set where logs should be"); LOG.Warn("Using MockConfigurationParser instead"); } IConfigurationParser configurationParser; if (string.IsNullOrWhiteSpace(filename)) { configurationParser = new MockConfigurationParser(); } else { configurationParser = new XmlConfigurationParser(filename); } Configuration configuration = configurationParser.ParseConfiguration(); LoggingConfiguration config = new LoggingConfiguration(); ColoredConsoleTarget consoleTarget = new ColoredConsoleTarget { Name = "console", Layout = "[${time} | ${level:format=FirstCharacter} | ${logger}] ${message}" }; FileTarget fileTarget = new FileTarget { FileName = logs + "/NetworkNode_" + configuration.RouterAlias + ".log", DeleteOldFileOnStartup = true, Layout = "[${time} | ${level:format=FirstCharacter} | ${logger}] ${message}" }; config.AddRule(LogLevel.Trace, LogLevel.Fatal, consoleTarget); config.AddRule(LogLevel.Debug, LogLevel.Fatal, fileTarget); LogManager.Configuration = config; IPacketForwarder packetForwarder = new MplsPacketForwarder(configuration); //IPacketForwarder packetForwarder = new MockPacketForwarder(configuration); IPort <ManagementPacket> managementPort = new ManagementPort(configuration); IClientPortFactory clientPortFactory = new ClientPortFactory(configuration); INetworkNodeManager networkNodeManager = new NetworkNodeManager(configuration, packetForwarder, managementPort, clientPortFactory); try { Console.Title = configuration.RouterAlias; } catch (Exception) { LOG.Trace("Could not set the title"); } networkNodeManager.Start(); }