private static void Main() { Logger = LogManager.GetLogger("Proxy"); AppConfig.Logger = Logger; Startup.RegisterGlobals(); var proxy = new ProxyHandler(AppConfig.ProxyIp, AppConfig.ProxyPort, Logger); proxy.BeforeRequest += ProxyBeforeRequest; proxy.BeforeResponse += ProxyBeforeResponse; proxy.Start(); Logger.Info($"Proxy is started on {AppConfig.ProxyIp}:{AppConfig.ProxyPort}"); var webApp = WebApp.Start <Startup>($"http://*:{AppConfig.WebServerPort}"); Logger.Info($"Web Server is started on http://localhost:{AppConfig.WebServerPort}"); Console.WriteLine(); Logger.Info("Hit escape to stop the proxy and exit.."); Console.WriteLine(); while (true) { var key = Console.ReadKey(); switch (key.Key) { case ConsoleKey.Escape: proxy.Dispose(); Logger.Info("Proxy is stopped."); webApp.Dispose(); Logger.Info("Web server is stopped."); return; } } }