private static int Main(string[] args) { LogManager.Init("client", Helper.GetDefaultLogsDir()); 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)) { Log.Error("Error parsing arguments. Exiting..."); return -1; } 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(); } }
public CommandProcessorContext(Client client, ILogger log, ManualResetEvent doneEvent) { Client = client; Log = log; _doneEvent = doneEvent; }