Ejemplo n.º 1
0
        private static int Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += (sender, eventArgs) =>
            {
                var exc = eventArgs.ExceptionObject as Exception;
                if (exc != null)
                    Log.FatalException(exc, "Global Unhandled Exception occurred within {0}.", sender);
                else
                    Log.Fatal("Global Unhandled Exception ({0}) occurred within {1}.", eventArgs.ExceptionObject, sender);
            };

            try
            {
                Console.Title = string.Format("EventStore - CLIENT - {0}", DateTime.UtcNow);

                var options = new ClientOptions();
                if (!CommandLineParser.Default.ParseArguments(args, options))
                {
                    Console.WriteLine("Error parsing arguments. Exiting...");
                    return -1;
                }

                var logsDir = !string.IsNullOrEmpty(options.LogsDir) ? options.LogsDir : Helper.GetDefaultLogsDir();
                LogManager.Init("client", logsDir);

                IPAddress ipAddr;
                if (!IPAddress.TryParse(options.Ip, out ipAddr))
                {
                    Log.Error("Wrong IP address provided: {0}.", ipAddr);
                    return -1;
                }

                var systemInfo = String.Format("{0} {1}", OS.IsLinux ? "Linux" : "Windows", Runtime.IsMono ? "MONO" : ".NET");
                var startInfo = String.Join(Environment.NewLine, options.GetLoadedOptionsPairs().Select(pair => String.Format("{0} : {1}", pair.Key, pair.Value)));
                var logsDirectory = String.Format("LOGS DIRECTORY : {0}", LogManager.LogsDirectory);

                Log.Info(String.Format("{0}{1}{2}{1}{3}", logsDirectory, Environment.NewLine, systemInfo, startInfo));

                var client = new Client(options);
                var exitCode = client.Run();

                Log.Info("Exit code: {0}.", exitCode);
                return exitCode;
            }
            catch(Exception exc)
            {
                Log.ErrorException(exc, "Exception during execution of client.");
                return -1;
            }
            finally
            {
                // VERY IMPORTANT TO PREVENT DEADLOCKING ON MONO
                LogManager.Finish();
            }
        }
Ejemplo n.º 2
0
        public Client(ClientOptions options)
        {
            Options = options;

            TcpEndpoint = new IPEndPoint(options.Ip, options.TcpPort);
            HttpEndpoint = new IPEndPoint(options.Ip, options.HttpPort);

            InteractiveMode = options.Command.IsEmpty();

            RegisterProcessors();
        }
Ejemplo n.º 3
0
        public Client(ClientOptions options)
        {
            Options = options;

            var ipAddr = IPAddress.Parse(options.Ip);
            TcpEndpoint = new IPEndPoint(ipAddr, options.TcpPort);
            HttpEndpoint = new IPEndPoint(ipAddr, options.HttpPort);

            _interactiveMode = options.Command.IsEmpty();

            RegisterProcessors();
        }