static void Main(string[] args) { var serverName = EnvManager.FindArgumentValue("server"); var configPathes = EnvManager.FindArgumentValues("config"); if (string.IsNullOrEmpty(serverName) || (configPathes.Count < 1)) { Console.WriteLine("You need to provide serverName and at least one config path!"); Console.WriteLine("Closing..."); Console.ReadKey(); return; } var loggerFactory = new LoggerFactory(); if (EnvManager.HasArgument("-console-log")) { loggerFactory.AddConsole(CustomLogFilter); } loggerFactory.AddFile("log.txt", false); var messageFormat = MessageFormat.LastTaskFailMessage; var consoleService = new ConsoleService(loggerFactory, messageFormat); var services = new List <IService> { consoleService, new SlackService(loggerFactory, messageFormat), new StatService("stats.xml", loggerFactory, true) }; services.TryAddNotificationService(loggerFactory); var commandFactory = new CommandFactory(loggerFactory); var server = new BuildServer(commandFactory, loggerFactory, serverName); string startUpError = null; if (!server.TryInitialize(out startUpError, services, configPathes)) { Console.WriteLine(startUpError); Console.WriteLine("Closing..."); Console.ReadKey(); return; } Console.WriteLine($"{server.ServiceName} started and ready to use."); consoleService.Process(); }