Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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);
                }
                
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }