static void Main(string[] args) { Console.CancelKeyPress += (sender, eventArgs) => { eventArgs.Cancel = true; tokenSource.Cancel(); }; ParserResult <Options> parseResults = Parser.Default.ParseArguments <Options>(args); options = parseResults.MapResult( parsed => parsed, notParsed => { return(default(Options)); }); if (options == default(Options)) { return; } if (options.csvoutput != null) { //Create CSV file and write header row. csvFile = new CSVFile(options.csvoutput); var columnlist = new List <string> { "Message#", "Date Time", "Routing Key", "Exchange", "Body" }; csvFile.WriteRow(columnlist); var connectionString = options.AMQP; Console.WriteLine("Trace is running. Ctrl-C to exit"); HandleDelivery(); try { using (ConnectAndSubscribe(connectionString)) { tokenSource.Token.WaitHandle.WaitOne(); } Console.WriteLine("Shutdown"); } catch (Exception e) { Console.Out.WriteLine(e.Message); } } }
static void Main(string[] args) { Console.CancelKeyPress += (sender, eventArgs) => { eventArgs.Cancel = true; tokenSource.Cancel(); }; if (Parser.Default.ParseArguments(args, options)) { if (options.csvoutput != null) { //Create CSV file and write header row. csvFile = new CSVFile(options.csvoutput); var columnlist = new List<string> { "Message#", "Date Time", "Routing Key", "Exchange", "Body" }; csvFile.WriteRow(columnlist); } var connectionString = options.AMQP; Console.WriteLine("Trace is running. Ctrl-C to exit"); HandleDelivery(); try { using (ConnectAndSubscribe(connectionString)) { tokenSource.Token.WaitHandle.WaitOne(); } Console.WriteLine("Shutdown"); } catch (Exception e) { Console.Out.WriteLine(e.Message); } } }
static void HandleDelivery(BasicDeliverEventArgs basicDeliverEventArgs, int msgCount) { if (basicDeliverEventArgs == null) { return; } Func <string, object> getHeader = key => basicDeliverEventArgs.BasicProperties.Headers.ContainsKey(key) ? basicDeliverEventArgs.BasicProperties.Headers[key] : null; Func <byte[], string> decode = bytes => Encoding.UTF8.GetString(bytes); if (!options.quiet) { //Standard output Console.Out.WriteLine(""); Console.Out.WriteLine("RoutingKey: {0}", basicDeliverEventArgs.RoutingKey); Console.Out.WriteLine("Exchange: {0}", decode((byte[])getHeader("exchange_name"))); var body = decode(basicDeliverEventArgs.Body); Console.Out.WriteLine(body); Console.Out.WriteLine(""); } if (options.csvoutput != null) { //CSV Output //Message#,Date Time,Routing Key,Exchange,Body var columnlist = new List <string> { msgCount.ToString(CultureInfo.InvariantCulture), DateTime.Now.ToString(CultureInfo.InvariantCulture), basicDeliverEventArgs.RoutingKey, decode((byte[])getHeader("exchange_name")), decode(basicDeliverEventArgs.Body) }; csvFile.WriteRow(columnlist); } }