예제 #1
0
        public void SimpleLoggingTest(string logGroupName)
        {
            LogMessages(SIMPLELOGTEST_COUNT);
            GetLogEventsResponse getLogEventsResponse = new GetLogEventsResponse();

            if (NotifyLoggingCompleted(logGroupName, "LASTMESSAGE"))
            {
                DescribeLogStreamsResponse describeLogstreamsResponse =
                    Client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest
                {
                    Descending   = true,
                    LogGroupName = logGroupName,
                    OrderBy      = "LastEventTime"
                }).Result;


                getLogEventsResponse = Client.GetLogEventsAsync(new GetLogEventsRequest
                {
                    LogGroupName  = logGroupName,
                    LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName
                }).Result;

                var customStreamSuffix = describeLogstreamsResponse.LogStreams[0].LogStreamName.Split('-').Last().Trim();
                Assert.Equal(CUSTOMSTREAMSUFFIX, customStreamSuffix);
            }
            Assert.Equal(SIMPLELOGTEST_COUNT, getLogEventsResponse.Events.Count());


            _testFixture.LogGroupNameList.Add(logGroupName);
        }
예제 #2
0
파일: Program.cs 프로젝트: dwarburt/furl
        static void Main(string[] args)
        {
            var client   = new AmazonCloudWatchLogsClient(Amazon.RegionEndpoint.USEast2);
            var response = client.GetLogEventsAsync(mkreq()).Result;

            dumpevts(response);
            while (response.NextForwardToken != null)
            {
                response = client.GetLogEventsAsync(mkreq(response.NextForwardToken)).Result;
                dumpevts(response);
            }
        }
예제 #3
0
        public void Log4Net()
        {
            XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
            logger = LogManager.GetLogger("Log4Net");
            for (int i = 0; i < 10; i++)
            {
                logger.Debug(string.Format("Test logging message {0} Log4Net", i));
            }

            //Added Sleep to give sufficient time for the log stream to get posted on CloudWatch
            Thread.Sleep(10000);
            string region       = "us-west-2";
            string logGroupName = "AWSLog4NetGroupLog4Net";

            AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient(
                Amazon.RegionEndpoint.GetBySystemName(region));

            DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest
            {
                Descending   = true,
                LogGroupName = logGroupName,
                OrderBy      = "LastEventTime"
            }).Result;


            GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest
            {
                LogGroupName  = logGroupName,
                LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName
            }).Result;

            Assert.Equal(10, getLogEventsResponse.Events.Count());
        }
        private List <string> GetLogMessages(string lambdaName)
        {
            var logGroup = GetLogGroup(lambdaName);

            _logsClient = new AmazonCloudWatchLogsClient();

            var logStreams = _logsClient
                             .DescribeLogStreamsAsync(new DescribeLogStreamsRequest(logGroup)).Result
                             .LogStreams;

            var responses = new List <GetLogEventsResponse>();

            foreach (var logStream in logStreams)
            {
                responses.Add(_logsClient.GetLogEventsAsync(new GetLogEventsRequest(logGroup, logStream.LogStreamName)).Result);
            }

            // Each response has many events so
            // simple Select would yield a nested array [[event1, event2,...event99] , [event101, event102,...event199] , [event200, event201,...event299]]
            // SelectMany flattens the array [event1, event2,...event299]]
            var messages = responses.SelectMany(x => x.Events)
                           .Where(x => x.Message.StartsWith("Location:"))
                           .Select(x => x.Message)
                           .ToList();

            return(messages);
        }
예제 #5
0
        public void ILogger()
        {
            LoggerConfigSectionSetup("appsettings.json", null);
            var logger = LoggerSetup();

            for (int i = 0; i < 10; i++)
            {
                logger.LogDebug(string.Format("Test logging message {0} Ilogger", i));
            }

            //Sleep is introduced to give suffiecient time for the logstream to get posted on CloudWatchLogs
            Thread.Sleep(5000);
            string region       = _configSection.Config.Region;
            string logGroupName = _configSection.Config.LogGroup;

            AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient(
                Amazon.RegionEndpoint.GetBySystemName(region));

            DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest
            {
                Descending   = true,
                LogGroupName = logGroupName,
                OrderBy      = "LastEventTime"
            }).Result;


            GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest
            {
                LogGroupName  = logGroupName,
                LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName
            }).Result;

            Assert.Equal(10, getLogEventsResponse.Events.Count());
        }
        public async Task <List <LogEntry> > GetAll(string text)
        {
            using (var client = new AmazonCloudWatchLogsClient(ACCESS_KEY_ID, SECRET_ACCESS_KEY, RegionEndpoint.USEast2))
            {
                //get the log entries for the specified log group and log stream
                var res = await client.GetLogEventsAsync(new GetLogEventsRequest(LOG_GROUP_NAME, LOG_STREAM_NAME));

                //return events from Cloudwatch
                return(res.Events

                       //filter out any that don't match the provided text
                       .Where(r => r.Message.Contains(text))

                       //convert into LogEntry DTO instances
                       .Select(r => new LogEntry()
                {
                    TimeStamp = r.Timestamp, Text = r.Message
                })

                       //provide a list of the above created LogEntry instances
                       .ToList()

                       );
            }
        }
        public async Task <List <string> > GetCloudWatchEventMessagesForLogGroup(string logGroupName, DateTime startTime)
        {
            var result    = new List <string>();
            var stopWatch = new Stopwatch();

            try
            {
                var client = new AmazonCloudWatchLogsClient(AwsCredentials, Region);

                var logStreamRequest = new DescribeLogStreamsRequest()
                {
                    LogGroupName = logGroupName,
                    OrderBy      = OrderBy.LastEventTime
                };

                stopWatch.Start();

                while (stopWatch.ElapsedMilliseconds < TimeSpan.FromMinutes(1).TotalMilliseconds)
                {
                    var logStreamsResponse = await client.DescribeLogStreamsAsync(logStreamRequest);  // rate limit is 5 per second

                    foreach (var stream in logStreamsResponse.LogStreams)
                    {
                        var logEventsRequest = new GetLogEventsRequest()
                        {
                            LogGroupName  = logGroupName,
                            LogStreamName = stream.LogStreamName,
                            StartTime     = startTime,
                        };

                        var logEventsResponse = await client.GetLogEventsAsync(logEventsRequest); // rate limit is 10 per second

                        result.AddRange(logEventsResponse.Events.Select(e => e.Message).ToList());
                        Thread.Sleep(150);
                    }

                    if (result.Count > 0)
                    {
                        var nrLog = result.Where(l => l.Contains(NRLogIdentifier));
                        if (nrLog?.Count() > 0)
                        {
                            break;
                        }
                    }

                    Thread.Sleep(250);
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            stopWatch.Stop();
            return(result);
        }
예제 #8
0
        public void MultiThreadTest()
        {
            global::NLog.Logger logger;
            try
            {
                LogManager.Configuration = new XmlLoggingConfiguration("Regular.config");
            }
            catch (FileNotFoundException)
            {
                LogManager.Configuration = new XmlLoggingConfiguration("./test/AWS.Logger.NLog.Tests/Regular.config");
            }
            logger = LogManager.GetLogger("loggerMultiThread");

            var tasks       = new List <Task>();
            var streamNames = new List <string>();
            var count       = 200;
            var totcount    = 0;

            for (int i = 0; i < 2; i++)
            {
                tasks.Add(Task.Factory.StartNew(() => NLogThread(count, logger)));
                totcount = totcount + count;
            }
            Task.WaitAll(tasks.ToArray());

            Thread.Sleep(10000);
            string region       = "us-west-2";
            string logGroupName = "AWSNLogGroupMultiThreadTest";


            AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient(
                Amazon.RegionEndpoint.GetBySystemName(region));


            DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest
            {
                Descending   = true,
                LogGroupName = logGroupName,
                OrderBy      = "LastEventTime"
            }).Result;


            GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest
            {
                LogGroupName  = logGroupName,
                LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName
            }).Result;

            Assert.Equal(totcount, getLogEventsResponse.Events.Count());
        }
예제 #9
0
        public void MultiThreadTest()
        {
            ILog logger;

            XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
            logger = LogManager.GetLogger("MultiThreadTest");

            var log      = LogManager.GetCurrentLoggers();
            var tasks    = new List <Task>();
            var count    = 200;
            var totcount = 0;

            for (int i = 0; i < 2; i++)
            {
                tasks.Add(Task.Factory.StartNew(() => Log4NetThread(count, logger)));
                totcount = totcount + count;
            }
            Task.WaitAll(tasks.ToArray(), 10000);

            //Added Sleep to give sufficient time for the log stream to get posted on CloudWatch
            Thread.Sleep(5000);
            string region       = "us-west-2";
            string logGroupName = "AWSLog4NetGroupLog4NetMultiThreadTest";

            AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient(
                Amazon.RegionEndpoint.GetBySystemName(region));

            DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest
            {
                Descending   = true,
                LogGroupName = logGroupName,
                OrderBy      = "LastEventTime"
            }).Result;


            GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest
            {
                LogGroupName  = logGroupName,
                LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName
            }).Result;

            Assert.Equal(totcount, getLogEventsResponse.Events.Count());
        }
예제 #10
0
        public void MultiThreadTest()
        {
            var tasks       = new List <Task>();
            var streamNames = new List <string>();

            ILoggerMultiThreadTestSetup("appsettings.json");
            logger = ILoggerTest.LoggerSetup();
            var count    = 200;
            var totcount = 0;

            for (int i = 0; i < 2; i++)
            {
                tasks.Add(Task.Factory.StartNew(() => ILoggerThread(count)));
                totcount = totcount + count;
            }
            Task.WaitAll(tasks.ToArray(), 10000);

            //Sleep is introduced to give suffiecient time for the logstream to get posted on CloudWatchLogs
            Thread.Sleep(5000);
            string region       = ILoggerTest._configSection.Config.Region;
            string logGroupName = ILoggerTest._configSection.Config.LogGroup;

            AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient(
                Amazon.RegionEndpoint.GetBySystemName(region));

            DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest
            {
                Descending   = true,
                LogGroupName = logGroupName,
                OrderBy      = "LastEventTime"
            }).Result;


            GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest
            {
                LogGroupName  = logGroupName,
                LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName
            }).Result;

            Assert.Equal(totcount, getLogEventsResponse.Events.Count());
        }
예제 #11
0
        public void Nlog()
        {
            try
            {
                LogManager.Configuration = new XmlLoggingConfiguration("Regular.config");
            }
            catch (FileNotFoundException)
            {
                LogManager.Configuration = new XmlLoggingConfiguration("./test/AWS.Logger.NLog.Tests/Regular.config");
            }
            global::NLog.Logger logger = LogManager.GetLogger("loggerRegular");
            for (int i = 0; i < 10; i++)
            {
                logger.Debug(string.Format("Test logging message {0} NLog, Thread Id:{1}", i, Thread.CurrentThread.ManagedThreadId));
            }

            string region       = "us-west-2";
            string logGroupName = "AWSNLogGroup";

            Thread.Sleep(10000);
            AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient(
                Amazon.RegionEndpoint.GetBySystemName(region));

            DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest
            {
                Descending   = true,
                LogGroupName = logGroupName,
                OrderBy      = "LastEventTime"
            }).Result;

            GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest
            {
                LogGroupName  = logGroupName,
                LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName
            }).Result;

            Assert.Equal(10, getLogEventsResponse.Events.Count());
        }